java-通过IO流复制文件夹到指定目录

public class copyDirectoryDemo {

public static void main(String[] args) {
        File srcFolder = new File("C:\\Users\\MA\\Desktop\\IOtest");
        File destFolder = new File("C:\\Users\\MA\\Desktop\\IOtest\\test");
        fun(srcFolder, destFolder);
    }

public static void fun(File srcFolder, File destFolder) {
        File[] fileArray = srcFolder.listFiles();
        if (!destFolder.exists()) {
            destFolder.mkdir();
        }
        for (File file : fileArray) {
            if (file.isDirectory()) {
                String folderName = file.getName();
                File newDestFolder = new File(destFolder, folderName);
                fun(file, newDestFolder);
            } else {
                String fileName = file.getName();
                File destFile = new File(destFolder, fileName);
                copy(file, destFile);
            }
        }
    }

public static void copy(File file, File destFile) {
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(new FileInputStream(file));
            bos = new BufferedOutputStream(new FileOutputStream(destFile));
            byte[] bys = new byte[1024];
            int len = 0;
            while((len=bis.read(bys))!=-1){
                bos.write(bys,0,len);
                
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }finally{
            if(bis!=null){
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(bos!=null){
                try {
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            
        }    
    }
}

原文地址:https://www.cnblogs.com/mxj961116/p/9348742.html

时间: 2024-11-05 21:59:07

java-通过IO流复制文件夹到指定目录的相关文章

使用IO流复制文件夹(包括子目录)

IO流用于处理设备上的数据(包括硬盘,内存,键盘录入). IO流可根据流向不同分为输入流和输出流,根据处理数据类型不同分为字节流和字符流. 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: a.读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. b.处理对象不同:字节流能处理所有类型的数据(如图片.avi等),而字符流只能处理字符类型的数据. 结论:

使用IO流对文件夹的复制(文件夹中带有子目录)

当我们要复制带有子目录的文件夹的时候,就必须使用递归,这样才能把全部的文件夹都复制到位 思路和步骤: 对于文件夹的复制,分2种情况               (1)当我们对文件进行遍历的时候,如果目标文件夹下的文件是个标准文件的话,我们就可以直接去做复制的动作,               (2)当目标文件中,是带有文件夹的文件,那么这个时候就需要对文件夹进行递归,直到最后它是个标准文件后,我们在做复制动作 有了上述的2种情况后,那么这个需求,需要提供2种方法,1是对标准文件的复制,2是对带有

IO流 复制文件及文件夹

1 package io; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.OutputStream; 9 import java.util.Scanner; 10 11 public class copy

java io流 对文件夹的操作

检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文件操作方法通用,因为都是一个类 //对文件夹的操作 //检查文件夹是否存在 //显示文件夹下面的文件 //.... import java.io.*; import java.util.*; public class Index{ public static void main(String[] args) throws Excep

Java IO流 之 文件夹工具封装 FileUtil

http://www.verejava.com/?id=17160035681948 public class Test2 { public static void main(String[] args) { FileUtil.createDir("dir3"); FileUtil.createDirs("dir4/test"); FileUtil.renameDir("dir4/test", "dir4/newtest");

IO流 - 复制文件(字节缓冲流+字节流)

一.什么是缓冲流 缓冲流的内部都包含一个缓冲区,通过缓冲区读写,可以提高了IO流的读写速度. 二.缓冲流+字节流复制文件 //明确数据源 FileInputStream fis=new FileInputStream("D:\\java1018\\buffer.txt"); //明确目的地 FileOutputStream fos=new FileOutputStream("D:\\java1018\\a\\buffer2.txt"); //创建缓冲流对象 //输入

IO流复制文件

1. 经过测试可以复制 txt excel csv exe pdf文件其他格式的没测,估计也没问题 public class Hello { private static final String LINE_SEPARATOR = System.getProperty("line.separator");//换行 public static void main(String[] args) throws Exception { FileInputStream reader = new

c#winform选择文件,文件夹,打开指定目录方法

private void btnFile_Click(object sender, EventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = true; fileDialog.Title = "请选择文件"; fileDialog.Filter="所有文件(*.*)|*.*"; if (fileDialog.ShowDialog() == Dia

java用字符io流复制文件

一.小文件一次快速读写 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test11 { public static void main(String[] args) throws IOException { //关联