Java字节流实现文件夹的拷贝

  

  

  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);

  }

  }

?

原文地址:https://www.cnblogs.com/qfjavabd/p/10119552.html

时间: 2024-08-24 23:29:58

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

IO流 文件夹的拷贝(字节流)

文件夹拷贝 package cn.Reader; import java.io.File; import java.io.IOException; /* * 文件夹的拷贝 * 1.文件复制 Copyfile * 2.文件夹创建 mkdirs() * 3.递归查找子孙级 */ public class CopyDir { public static void main(String [] args) { String srcPath="C:/Users/Administrator/Desktop/

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

Atitit. C#  java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurrent thread System.Threading java.lang.Thread collection System.collection java.util.collection Io Sys.io sys.text sys.xml sys.data.sql sys.data sys.web

【Java】创建文件夹

Java中创建文件夹使用File类下自带的mkdirs()方法就能够轻松完成了, 本来没有什么好说的,唯一值得注意的是这个mkdirs()能够一次性创建多级目录,无须递归调用.也就是说,我要创建在F盘新建一个文件夹a,然后在这个文件夹a中在创建文件夹s,直接通过File file=new File("f:\\a\\s");指定f:\a\s这个路径,然后直接同过file.mkdirs()方法的调用,Java就会在系统中帮助你完成这两个文件夹的创建, 代码无须写成按照平时操作Windows

JAVA实现复制文件夹

1 package com.filetest; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 import java.util.Scanne

面试题求解:用java列举某个文件夹下所有的文件或者目录编程题

有人问及一个用java列举某个文件夹下所有的文件或者目录编程题.结果他不加思索的写了十几行代码,就搞定了,结果面试官说等通知,直到最后都没通知他,我猜想出题人的最终想法是看如何封装代码,如何灵活使用丰富的API. 于是我试着写一个可选择结果,希望对各位有用: import java.io.File; import java.io.FileFilter; /** 如何列出某个目录下的所有文件/目录 @author leizhimin 2010-3-22 20:58:37 */ public cla

【Java】移动文件夹及其所有子文件与子文件夹

在Java移动文件夹及其所有子文件与子文件夹可以有如下的一段简单的方法来说明: public static void moveFolder(String oldPath, String newPath) { //先复制文件 copyFolder(oldPath, newPath); //则删除源文件,以免复制的时候错乱 deleteDir(new File(oldPath)); } 不应该直接剪切文件,防止在剪切的时候出错,导致这样那样的问题. 在Java复制文件夹及其所有子文件与子文件夹,在<

黑马程序员-JAVA学习之文件夹的复制和遍历所有文件

--------android培训.java培训.期待与你交流!-------- JAVA的文件夹复制由于不知道文件夹里面有多少文件夹,所以使用递归方法遍历里面的所有文件夹和文件,如果是文件,则直接复制到目标文件夹,如果是文件夹,则的目标地方创建对应的同名文件夹,由于文件有各种各样的类型,比如视频,文档,图片等.所以要用到的主要是字节流对象,而不是用字符流对象,在这里用到的几个类分别是 1.File类,文件和目录路径名的抽象表示形式.(即表示既可以是一个文件,也可以是一个文件夹,是一个有分隔符的

文件夹的拷贝

需要引用笔记<文件拷贝的实现>的方法 1 public static void copyDirectory(File src,File dest){ 2 if(src.isDirectory()){ 3 dest=new File(dest,src.getName());//在dest文件夹下创建src文件夹 4 } 5 copyDir(src, dest); 6 } 7 public static void copyDir(File src,File dest){ 8 9 if(src.is

Java上传文件夹(Jersey)

背景介绍:公司要在CMS系统上为运营人员提供一个功能供运营人员将做好的活动页面上传到阿里云存储上,上传的内容为一个文件夹,文件夹内部有.html网页,JS文件夹下有JS文件,CSS文件夹下有样式表,Images文件夹下有多张图片,具体的目录接口如下: 要在网页上将整个文件夹进行上传,下面介绍下我整个实现的过程. 项目架构,前端使用的JSP,后端使用的Jersey,一个类似WebService的技术. 直接上代码,前端JSP文件: <%@ page language="java"