分析复制文件,在复制过程中更改文件后缀名

来源:互联网 发布:面板数据回归模型 编辑:程序博客网 时间:2024/06/15 21:47

这是我自己的做法:

将一个目录下的所有.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);// 如果被遍历的文件是个目录,那么继续调用该方法。elseif(file.getName().endsWith(".java"))// 如果是.java,就将该文件添加进List集合。al.add(file);}for(File file: al){// 对集合进行变量String name=file.getName().replace(".java",".txt");// 将集合中的.java替换成.txt。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();}}} 


                                             
1 0