分享复制文件,并将文件扩展名更改为.txt

来源:互联网 发布:学java工程师 编辑:程序博客网 时间:2024/05/24 06:25

这是我自己的一种做法:

就是将一个文件下的所有.java文件复制到另一个文件,复制成功后,并将刚刚复制过去的文件改成.txt

思路:首先我们要明确我们要获取的源,并明确我们要存储的目的。

然后对源下面的文件进行遍历,如果是.java的文件就进行读取,并复制到目的。

复制成功后需要更改扩展名,那么我们在复制的时候定义一个变量,记录住每一个复制过去的文件名,

并用集合进行存储,在对集合进行遍历,将集合中的文件名的后缀更改为.txt,并进行封装成对象,

在对目的中的文件进行更改即可。

package pack;import java.io.*;import java.util.*;class CopyFileRename{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<String>al=new ArrayList<String>();// 该集合用于存储每一次要复制时的路径。FileInputStream fis;// 字节读取流,用于读取源下的文件。FileOutputStream fos;// 字节输出流,将获取到的文件写入到目的。for(File file: files){// 对数组进行变量,并进行条件判断,if(file.isDirectory())renameToFile(file,filename);// 如果该文件是个目录,就再次调用此方法,elseif(file.getName().endsWith(".java")){// 如果该文件是.java,就进行复制,String name=filename+file.getName();// 该变量用于记录复制文件的路径al.add(name);// 将路径添加进集合fis=new FileInputStream(file);// 读取file文件fos=new FileOutputStream(name);// 写入目的。int len=0;byte[] buf=new byte[1024];while((len=fis.read(buf))!=-1){fos.write(buf,0,len);}fis.close();fos.close();}}try{// 为了看到现象,在复制后成功后等待两秒。Thread.sleep(2000);}catch(Exception e){}for(int x=0; x<al.size(); x++){// 对集合进行变量File file=new File(al.get(x));// 将集合内容封装成file对象。String strName=file.getName();// 获取该file对象的名称。String newName=strName.replace(".java",".txt");// 将获取到的名称的后缀替换成.txtFile newFile=new File(filename,newName);// 将替换后的名称封装成一个新的路径。try{// 为了看到改名的操作,每一秒。改一个。Thread.sleep(1000);}catch(Exception e){}file.renameTo(newFile);// 改名操作}}}


3 0
原创粉丝点击