标签:
这是我自己的做法:
将一个目录下的所有.java文件复制到另一个目录,但是要在复制的过程中更改文件后缀名。
思路:跟上一个一样,只是动作稍稍有一些不同,直接上代码
package pack;
import java.util.*;
import java.io.*;
class CopyRenameFile{
public static void main(String[] args)throws IOException{
File dir=new File("E:\\JAVASE\\JAVA复习代码\\");// 明确源
File filename=new File("E:\\");// 目的
renameToFile(dir,filename);// 调用方法
}
private static void renameToFile(File dir,File filename)throws IOException{
File[] files=dir.listFiles();// 将源目录下的所有文件装进数组。
ArrayList<File>al=new ArrayList<File>();// 定义一个集合,该集合存储的是一个File对象。
FileInputStream fis;// 字节读取流
FileOutputStream fos;// 字节输出流
for(File file: files){// 对数组进行变量
if(file.isDirectory())
renameToFile(file,filename);// 如果被遍历的文件是个目录,那么继续调用该方法。
else
if(file.getName().endsWith(".java"))// 如果是.java,就将该文件添加进List集合。
al.add(file);
}
for(File file: al){// 对集合进行变量
String name=file.getName().replace(".java",".txt");// 将集合中的.java替换成.txt。<pre name="code" class="javascript"><span style="white-space:pre"> </span>File newFile=new File(filename,name);// 将目录与替换后的名称封装成File,用于写入时定义的名称
fis=new FileInputStream(file);// 读取
fos=new FileOutputStream(newFile);// 写入
int len=0;
byte[] buf=new byte[1024];
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
fis.close();
fos.close();
}
}
}
标签:
原文地址:http://blog.csdn.net/qiang3570/article/details/44871049