io流的练习3复制多级文件夹下的指定文件并改名

卡拉瓦 卡拉瓦     2022-08-07     708

关键词:

需求:复制指定目录下的指定文件,并修改后缀名。
    指定的文件是:.java文件。
    指定的后缀名是:.jad
   数据源所在文件夹:C:UsersAdministratorDesktop记录
   目的地所在文件夹:C:UsersAdministratorDesktop新建文件夹copy

分析
  A:封装数据源的目录    B:封装目的地的目录
      判断路径下的文件是否是文件夹
        是:在目的文件夹下创建该文件,
          获取数据源所在文件夹的所有文件的File数组
          遍历File数组,得到每个文件的File对象

        不是:再对其后缀进行判断是否是.java

            是:进行改名并复制

            不是:无视


代码:

1、首先写main方法:

 1     public static void main(String[] args) throws IOException {
 2         //封装目录
 3         File start = new File("C:\Users\Administrator\Desktop\记录");
 4         File end = new File("C:\Users\Administrator\Desktop\新建文件夹\copy");
 5         
 6         //如果目的地文件夹不存在,则创建
 7         if(!end.exists()){
 8             end.mkdir();
 9         }
10         
11         //复制文件夹
12         copyFolder(start,end);        
13     }

 

2、判断是否是文件夹,并对文件夹进行复制的方法

 1     private static void copyFolder(File start, File end) throws IOException {
 2         // 由于start是文件夹,所以开始不必获取File数组,直接进行判断
 3         if(start.isDirectory()){
 4             //是文件夹
 5             
 6             //首先在目的文件夹下创建不同路径,同样名称的文件夹
 7             File newFolder = new File(end,start.getName());
 8             newFolder.mkdir();
 9             
10             //获取该文件夹下的所有文件或文件夹的File数组
11             File[] f = start.listFiles();
12             for(File file : f){
13                 //再重新执行判断是否是文件夹
14                 copyFolder(file,newFolder);
15             }
16             
17         }else{
18             //是文件
19             //判断是否是.java后缀的,是的话就改名,不是则丢掉
20             String name = start.getName();
21             if(name.endsWith(".java")){
22                 String newname = name.replace(".java", ".jad");
23                 File newfile = new File(end,newname);
24                 
25                 //进行复制
26                 copyfile(start,newfile);
27             }

 

3、判断文件后缀是否是.java,并对它的数据进行复制

 1     private static void copyfile(File start, File newfile) throws IOException {
 2         //因为任意格式的,所以用缓冲字节流
 3         BufferedInputStream bi = new BufferedInputStream(new FileInputStream(start));
 4         BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(newfile));
 5         
 6         //获取数据
 7         byte[] by = new byte[1024];
 8         int len = 0;
 9         while((len = bi.read(by)) != -1){
10             bo.write(by,0,len);
11         }
12         bi.close();
13         bo.close();    
14     }

 

io流的练习2———复制单级文件夹中的文件

...面的所有文件复制到     C:UsersAdministratorDesktop新建文件夹copy文件夹中 分析:     A:封装目录     B:获取该目录下的所有文件的File数组     C:遍历该集合,得到每一个File对象     D:把每个File复... 查看详情

io流的一些练习(代码片段)

1.复制文本文件importjava.io.*;/***复制文本文件(为操作方便本测试throws)*条件:此项目下有一个text文件*/publicclassCopyTextpublicstaticvoidmain(String[]args)throwsIOException//分析可知,可采用高效字符流来复制文件//创建高效字符输入流对象BufferedRe... 查看详情

java如何递归遍历多重目录下的指定格式文件复制到目标目录并改格式

...from为目录:fromPath=D:\abc;目录下有a.txt.,b.txt,c.html.d.java,文件夹(test)同时文件夹下同样f.txt,G..java等多种格式的,文件;目标目录E:\ABC;要求:.过滤源目录下的TXT格式文档并且复制到目标目录并改格式为.java,将源目录下的子目... 查看详情

复制指定目录下的指定文件,并修改后缀名很重要,也很难!!!

packagecn.idcast2;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStre 查看详情

复制指定目录下的指定类型文件,并修改后缀名(代码片段)

packagecom.companyname.common.test;importjava.io.*;/***@Description*@AuthorCreatedbyshusheng.*@Email[email protected]*@Date2018/12/2*/publicclassCopyFolderDemopublicstaticvoidmain(String[]args)t 查看详情

用java实现将多级文件夹下的所有文件统一放到一个文件夹中

...次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹、后退,再进、再退的操作,而手动把这些电影全部复制出来又太繁琐。因此为了解决这个问题,用IO写了一个... 查看详情

批量复制指定目录下的文件,并统计执行时间(代码片段)

  该脚本用于将指定目录下的文件复制到指定的目录,可指定复制的次数,并统计消耗的时间。比如想要大批量制造很多文件。遇到的问题是:如果for循环中,文件名有空格,则会报错:“找不到指定的文件”,那... 查看详情

javafileio练习题:把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

packagecom.swift;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjav 查看详情

java基础io流复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名对加密文件计算字母个数(代码片段)

packagecom.swift.jinji;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileFilter;importjava.io.FileInputStream;importjava.io.FileNotFoundExceptio 查看详情

批量复制指定目录下的文件,并统计执行时间(代码片段)

  该脚本用于将指定目录下的文件复制到指定的目录,可指定复制的次数,并统计消耗的时间。比如想要大批量制造很多文件。遇到的问题是:如果for循环中,文件名有空格,则会报错:“找不到指定的文件”,那... 查看详情

io流的文件复制(代码片段)

1、IO流的分类1.根据处理数据类型的不同分为:字符流:1)Reader读取字符流的抽象类      常用方法:read()读取单个字符read(char[]cbuf)将字符读入数组。           read(char[]cbuf,intoff,intlen)将字符读入数组的某... 查看详情

c实现简单的文件管理不含交互(代码片段)

...自定义内容(比如文件名:abc.txt)4、把上面所创建的文件复制到D盘5、对上面复制到D盘的文件进行文件内容的追加6、对D盘的文件实施改名操作7、实现从文件中搜索是否存在用 查看详情

将文件夹下的一级目录文件改名并移动目录

#此段代码实现将文件夹下的一级目录文件改名并移动目录#list=os.listdir(Datadir)#列出文件夹下所有的目录与文件#foriinrange(0,len(list)):#path=os.path.join(Datadir,list[i])#list2=os.listdir(path)#forjinrange(0,len(list2)):#path2=os.path.join(pat 查看详情

说说在python中如何复制、移动、改名以及删除文件或文件夹

参考技术A要实现复制、移动、改名以及删除文件或文件夹,需要用到shutil模块,shutil是shellutil的简写形式,表示shell工具。调用shutil.copy(source,destination)来实现复制文件或文件夹功能,依据destination进行区分:运行结果:注意:指... 查看详情

用bat复制指定文件到指定文件目录下的所有文件夹?

比如D盘里3个文件夹,分别为1、2、3.现在桌面上有一个123.txt文件。现在我自己做一个bat,使其内容是将桌面上的123.txt复制到D盘的3个文件夹中,请问应该如何写代码?不要以下代码:@echooffcopy123.txtD:\1\copy123.txtD:\2\cop... 查看详情

linux基础day06:文件管理02(代码片段)

...OPTION]...-tDIRECTORYSOURCE..(废物)cp选项-t目录源文件#cp选项复制谁复制到哪去#拷贝当前目录下的1.txt粘贴到/tmpcp1.txt/tmp#拷贝当前目录下的1.txt粘贴到当前目录下并改名为2.txtcp1.txt2.txt#拷贝当前目录下的1.txt粘贴到/opt底下改名为2.txtc... 查看详情

用excelvba获取指定目录下的文件名(包括文件夹名)

...并点击“打开”3、比如是需要复制输出c盘下的ProgamData中文件夹的名字4、在命令窗口中输入“cdc:\\ProgamData”5、点击“回车键”后出现下面情况6、然后输入“dir/b>d:21.xls”命令并点击“回车键”7、接着就在D盘出现名称为21的... 查看详情

io流简要总结

IO流小总结IO流的本质就是用于数据的传输,根据流的方向的不同,有输入流、输出流。根据数据类型的不同,又有字节流、字符流。字节流     字节输入流  InputStream     字节输出流&nb... 查看详情