抛砖引玉:
package maxwell.demo.io;
import java.io.*;
//遍历文件中的内容,并且将后缀名是java的文件改成txt
public class FileInputStreamDemo {
public static void main(String[] args)throws Exception{
//封装源文件目录
File yuan = new File("d:"+File.separator+"news");
//封装目的文件目录
File mudi = new File("c:"+File.separator);
//传入到方法里面
method(yuan,mudi);
}
public static void method(File yuan,File mudi)throws Exception{
//遍历目录,查看是否是多层目录
if(yuan.isDirectory()){
//如果是目录的话,就创建同名的目录,取得文件的名字
File newmudi = new File(mudi,yuan.getName());
newmudi.mkdirs();
//建立数组,将源中的目录存入
File[] files = yuan.listFiles();
//遍历数组并且利用递归进行多级创建
for(File f : files){
method(f,newmudi);
}
}else{
//否则就是文件,创建文件
File file = new File(mudi,yuan.getName());
if(yuan.getName().endsWith("java")){
//获取名字
String s =yuan.getName().substring(0, yuan.getName().length()-4)+"txt";
//创建txt结尾的同名文件
File files = new File(mudi,s);
files.createNewFile();
//调用方法
fileFun(yuan,files);
}else{
fileFun(yuan,file);
}
}
}
public static void fileFun(File yuan,File mudi)throws Exception{
//创建字符流
FileInputStream fis = new FileInputStream(yuan);
FileOutputStream fos = new FileOutputStream(mudi);
int len = 0;
byte[]bytes = new byte[1024];
while((len = fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
fos.close();
fis.close();
}
}
|
|