IO流中字节流InputStream和OutputStream的使用

934 阅读2分钟

需求:将某个目录下的.java的所有文件复制到另一个目录下,子目录文件也要复制

思路分析: 1.需要复制给点目录以及子目录,需要递归 2.找到所有的.java文件必须取得文件名后在进行拆分,看是否为.java文件 3.要进行文件的复制,就需要使用输入流和输出流

问题要点: 找到.java文件后如何在新目录中创建子目录来写入文件 如何递归创建文件夹

解决办法: 首先定义需要复制的文件目录,定义后创建一个paste()无返回值方法,并且传入file对象;

在paste()方法中,先找到这个文件目录的子目录数组files,然后遍历该数组并且判断,如果子目录为目录的话就递归(为了寻找下层目录中的.java文件),如果不是目录就判断该文件的名字是否以.java结尾,是的话我们就将它复制到目标目录.这里我又创建一个方法来实现,pasteToDir();

在该方法中,先创建字节输入流对象inputStream,然后进行创建目录的操作;

创建目录分为几步:第一步得到复制文件的全路径,然后修改replace当中的路径名为新目录(该目录用于存放复制文件)的路径名;

第二步使用新路径来构造File类对象,这样我们就可以使用mkdirs()手动创建目录了; 创建完目录后就可以使用File类中的构造方法去创建新的文件了,文件名同复制文件; 以上就成功建好目录和文件了;最后就是构造OutputStream字节输出流对象来存入对应文件中的数据了.

该方法最大的好处是除了起始的盘符名字和目录名字不同外,可以将子目录以及子文件都复制到新的目录下,这样就没有打散原文件的整体结构,还成功把文件移动到新的位置了.

谢谢你这么好看还来努力学习,阅读我的文章,如果你觉得有用的话请点亮我的小星星,别吝啬你的赞美,我也会努力越做越好的,多做一些有价值的学习心得!!