import java.io.File;

  import java.io.FileInputStream;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.OutputStream;

  /**

  · java字节流实现文件夹的拷贝

  · 拷贝文件夹,其中文件夹中又有多个文件

  · 1.先遍历这个文件夹,判断是否是目录

  · 2.创建文件夹

  · 3.拷贝文件到新的地方

  · */

  public class FileDirectoryCopyDemo {

  //遍历文件夹

  public static void copy(File srcDir,File destDir){

  //遍历srcDir文件夹

  File[] list=srcDir.listFiles();

  for(File f:list){

  //先判断是否是目录,在目录文件夹里创建一个子目录

  if(f.isDirectory()){

  String name=f.getName(); //获取目录的名字

  //调用方法去目录文件夹里创建子目录

  File newDestDir=makeDir(destDir,name);

  //递归

  copy(f,newDestDir);

  }else{

  //如果不是目录,就拷贝文件

  File dest=new File(destDir,f.getName());

  fileCopy(f,dest);

  }

  }

  }

  public static File makeDir(File parent,String name){

  File f=new File(parent,name);

  f.mkdir();//创建文件夹

  return f;

  }

  //文件拷贝函数

  public static void fileCopy(File src,File dest){

  InputStream in=null; //输入流,负责读文件

  OutputStream out=null; //输出流,负责写入文件

  try{

  in=new FileInputStream(src);

  out=new FileOutputStream(dest);

  long start=System.currentTimeMillis();

  //定义缓冲区

  byte[] buffer=new byte[1024];

  int len=-1;

  · while((len=in.read(buffer))!=-1)//说明还没有读到文件的结尾

  · {

  · out.write(buffer,0,len); //输出流写入一个字节

  · }

  · long end=System.currentTimeMillis();

  · //文件夹下有几个文件就耗时几次

  · System.out.println(拷贝文件耗时:+(end-start)+毫秒);

  · }catch(Exception e){

  · e.printStackTrace();

  · }finally{

  · try {

  · in.close();

  · out.close();

  · } catch (IOException e) {

  · // TODO Auto-generated catch block

  · e.printStackTrace();

  · }

  }

  }

  public static void main(String[] args) {

  // TODO Auto-generated method stub

  //拷贝之前的原文件 haha是个文件夹

  File src=new File(D:+File.separator+haha);

  //拷贝之后的文件

  File dest=new File(F:+File.separator+haha);

  if(!dest.exists()){

  dest.mkdir(); //创建文件夹

  }

  copy(src,dest);

  }

  }

Java字节流实现文件夹的拷贝的更多相关文章

  1. IO流-文件夹的拷贝

    文件夹的拷贝操作 要求: 完成文件夹的拷贝,包括子目录的拷贝和所有文件的拷贝 分析: 首先,得在目标目录下创建一个与源文件夹名称相同的文件夹 遍历源文件夹中的所有文件对象,判断子文件是目录还是文件 如 ...

  2. Java 字节流实现文件读写操作(InputStream-OutputStream)

    Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...

  3. Linux下 两台机器文件/文件夹 相互拷贝

    Linux下 两台机器文件/文件夹 相互拷贝 设有两台机器 :A:*.101及 B:*.102. 把A下的.temp/var/a.txt拷贝到B机器的/text/目录下: 进入B机器:scp root ...

  4. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  5. Atitit. C# java 的api 文件夹封装结构映射总结

    Atitit. C#  java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurren ...

  6. Java笔记:文件夹操作

    创建目录: File类中有两个方法可以用来创建文件夹: mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false.失败表明File对象指定的路径已经存在,或者由于整个路径还不存在, ...

  7. JAVA实现复制文件夹

    package com.filetest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  8. java 把一个文件夹里图片复制到另一个文件夹里

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...

  9. Java实现读取文件夹下(包括子目录)所有文件的文件名

    在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. pa ...

随机推荐

  1. TCP状态转换图、滑动窗口、半连接状态、2MSL

    一.TCP状态转换图 下图对排除和定位网络或系统故障时大有帮助,也帮助我们更好的编写Linux程序,对嵌入式开发也有指导意义.    先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 ...

  2. JS参差不齐的数组

    <html><head> <title>参差不齐的数组</title> <meta charset="utf-8"> & ...

  3. Apache+php+mysql环境配置

    Apache+PHP+MySQL环境搭建 标题格式 正文格式 阶段性完成格式 正文中强调格式 ————————————————————————————— 前语:本文是从我写过的doc文档迁移过来的,由 ...

  4. HDU - 2639 Bone Collector II (01背包第k大解)

    分析 \(dp[i][j][k]\)为枚举到前i个物品,容量为j的第k大解.则每一次状态转移都要对所有解进行排序选取前第k大的解.用两个数组\(vz1[],vz2[]\)分别记录所有的选择情况,并选择 ...

  5. Object-C-复制

    copy 减少对象上下文依赖 copy 创建一个新对象,copy得到的副本对象与原来内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有变化 使用 copy 创建出来的对象是不可 ...

  6. uva11419 二分图--最小覆盖=最大匹配

    大白书355 // UVa11419 SAM I AM // Rujia Liu #include <cstdio> #include <cstring> #include & ...

  7. emoj表情过滤

    用法:  isEmojiCharacter(input_value)   //  提交时候校验.true:emoj表情   undefined:无   if(isEmojiCharacter(val) ...

  8. C# Http方式下载文件到本地类改进版

    在上文基础上增加了远程文件是否存在和本地文件是否存在的判断. 类代码: using System; using System.Collections.Generic; using System.Lin ...

  9. WireShark学习

    1.打开wireshark->Capture->Interface->选择你的网卡(选中)->Start 2.OK抓包开始,工具栏上有stop,点击停止抓包 3.过滤,这个你可 ...

  10. docker简单操作

    下载镜像docker pull httpd(镜像名) 查看镜像:docker images 做容器 docker run -ti -v(映射)/www:发布目录的路径 -p 80:80 --name ...