黑马程序员——java-IO流中复制单击目录以及使用递归的方式复制多级目录小结
来源:互联网 发布:黑客摄像头监控软件 编辑:程序博客网 时间:2024/04/30 15:02
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
文件的复制大概分为五种方式,如果是文本文档可以使用字节流复制,也可以使用字符流复制
如果是复制目录,由于目录中可以存放各种类型的文件,所以最好使用字节流的方式,因为字节流可以操作包括图片、语音、视屏等各种类型的文件进行复制
一、如果是单级目录:
1.首先创建文件目录
2.遍历出源文件内容
3.创建新的文件用于接收原文件内容
4.将源文件复制到新的文件中
5.关闭流资源
<span style="font-size:12px;">public class Copy {public static void main(String[] args) throws IOException {method2("a", "b");}//给定两个目录,会把第一个目录的内容复制到第二个目录下public static void method2(String src,String dest )throws FileNotFoundException, IOException {File srcDIR = new File(src);File destDIR = new File(dest);File[] listFiles = srcDIR.listFiles();for (File file : listFiles) {//file:老文件夹下的遍历到的这个文件<span style="white-space:pre"></span>//创建一个新的文件,但是里边还没有内容File newFile = new File(destDIR,file.getName());method(file, newFile);}}//给定两个文件,会把第一个文件的内容复制到第二个文件中public static void method(File file, File newFile)throws FileNotFoundException, IOException {//创建字节流BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));//进行文件内容的复制byte[] bytes = new byte[1024];int len;while ((len=bis.read(bytes))!=-1) {bos.write(bytes,0,len);} //关闭流资源bos.close();bis.close();}}</span>二、使用递归的思想进行多级目录的复制
<span style="font-size:12px;">public class Copy {public static void main(String[] args) throws IOException {File srcDIR = new File("D:\\Lesson..."); //给定要被复制的多级目录File destDIR = new File("a");//复制到的目标文件method(srcDIR,destDIR);}/* * src:被复制的文件对象 * destDIR:目标目录 */public static void method(File src,File destDIR) throws IOException {if(!destDIR.exists()) { //如果目标文件目录不存在,则创建目标目录destDIR.mkdir();// 由于目录不能直接被创建,所以此处必须要手动创建目标目录}if(src.isDirectory()) {//如果是目录File[] listFiles = src.listFiles(); //返回目录下所有文件的数组File newDIR = new File(destDIR,src.getName()); //创建新的目录对象newDIR.mkdir();//创建新的目录for (File file : listFiles) { //遍历目录下所有文件method(file,newDIR); // 递归调用复制多级目录的方法}} else { //如果是文件//创建目标文件File newFile = new File(destDIR,src.getName());//将形参src(被复制的文件)复制到目标文件中BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));byte[] bytes = new byte[1024];int len;while((len=bis.read(bytes))!=-1) {bos.write(bytes,0,len);<span style="white-space:pre"></span></span><pre name="code" class="java"><span style="font-size:12px;"><span style="white-space:pre"></span>bos.flush(); }bos.close();bis.close();}}}</span>
总结:多级目录的复制由于使用的是字节流,所以可以复制任何类型的文件,同时也可以进行单级目录的复制,通过不断的向上抽取封装,可以是复制文件看起来更
简单,只需给定两个文件的字符串路径即可,我想这就是面向对象思想的体现吧!
0 0
- 黑马程序员——java-IO流中复制单击目录以及使用递归的方式复制多级目录小结
- 黑马程序员_多级目录的复制
- java 使用IO流复制整个目录
- IO流--多级文件夹下的所有目录复制到指定目录下
- 黑马程序员——java-使用IO流复制文件主要的五种方法
- 黑马程序员--File类删除目录,复制目录。打印流(装饰类),对象的序列化流,集合IO的结合使用
- 黑马程序员——IO基础——练习:按原文件的目录层次复制所有文件到目标文件夹
- Java中复制多级文件夹的方式
- 黑马程序员—IO流复制练习
- 黑马程序员——IO字节流复制图片以及MP3文件的方法
- qt中递归复制目录
- Java递归实现目录复制
- java中递归实现复制多级文件夹
- C++ 递归方式复制文件夹目录
- 黑马程序员-IO的复制
- 黑马程序员——io的九种文件复制方式
- 黑马程序员------IO流----复制
- 黑马程序员--IO流中使用字节流复制文件的效率比较
- 【算法题】查找字符串中无重复最长子串的长度
- tcp-ip : tcp2
- Android PowerImageView实现,可以播放动画的强大ImageView
- SDN学习
- Android 读sys/class/power_supply/battery/cureent_now的值
- 黑马程序员——java-IO流中复制单击目录以及使用递归的方式复制多级目录小结
- BigDecimal精确计算
- object-c集合总计
- 正则中需要转义的特殊字符小结
- redhat iptables 修改
- 二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)
- 【hadoop运维】hadoop1.x分布式安装
- ipad iphone ios系统设备忘记密码如何修复 如何进入恢复模式
- html 鼠标事件,注释浮动框,提示文字