黑马程序员技术交流社区
标题:
编写程序,将指定目录下所有.java文件拷贝到另一个目...
[打印本页]
作者:
刘汉文
时间:
2013-12-28 16:16
标题:
编写程序,将指定目录下所有.java文件拷贝到另一个目...
本帖最后由 刘汉文 于 2013-12-29 10:55 编辑
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
package com.itheima;
import java.io.*;
import java.util.ArrayList;
public class Test_9
{
public static void main(String[] args) throws Exception
{
File from=new File("f:\\music\\test");
File to=new File("f:\\test1");
if(!to.exists())
to.mkdir();
ArrayList<File> al=new ArrayList<File>();
getFile(from, al);
BufferedInputStream bufi=null;
BufferedOutputStream bufo=null;
for(File file:al)
{
bufi=new BufferedInputStream(new FileInputStream(file));//输入流
String s=file.toString().substring(file.toString().lastIndexOf("\\")).replace(".java",".txt");
//获取文件名并进行后缀名的修改
bufo=new BufferedOutputStream(new FileOutputStream(new File(to,s)));//输出流
byte[] buf=new byte[1024*1024];
int len=0;
while((len=bufi.read(buf))!=-1)
{
bufo.write(buf, 0, len);
bufo.flush();
}
bufi.close();
bufo.close();
}
}
public static void getFile(File from,ArrayList<File> al)//递归函数,获取所有.java的File.
{
File[] files=from.listFiles();
for(File file:files)
{
if(file.isDirectory())
getFile(file,al);
else
{
if(file.toString().endsWith(".java"))
al.add(file);
}
}
}
}
作者:
sd110572
时间:
2013-12-28 19:30
没有思路能做出来?如果你能自己写的,能写出来就已经有思路了。
如果是照着写做出来的,那就没用。必须知道每句话的原因,然后在写。
作者:
sd110572
时间:
2013-12-28 19:33
你甚至省略了if的括号还有注释,要在这行工作的话有些规则是必须遵守的,
除非你以后不打算做这行业。
作者:
刘汉文
时间:
2013-12-28 20:04
sd110572 发表于 2013-12-28 19:30
没有思路能做出来?如果你能自己写的,能写出来就已经有思路了。
如果是照着写做出来的,那就没用。必须知 ...
只是谦逊的求点优化,思路当然有,而且很流畅,基本的递归,获得所有File并用集合存储,然后流读取,然后截取文件名,修改后缀名,从组成新File,最后流输出。
作者:
蹲厕所丶摸蛆
时间:
2014-8-2 21:51
nicenicenicenicenicenicenicenicenicenicenicenicenice
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2