IO复制文件到另一个地方

Posted 白snow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO复制文件到另一个地方相关的知识,希望对你有一定的参考价值。

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @ClassName: Copy
 * @Description: 文件复制
 * @author snow
 * @date 2021年11月25日
 *
 */
public class Copy 
    
    public static void main(String[] args) throws IOException 
        File inFolder = new File("D:\\\\TestRead");
        File outFolder = new File("D:\\\\"+ inFolder.getName()+"copy");
        copyFolder(inFolder,outFolder);
        System.out.println("复制完成");
    
    
    /**
     * @Title: copyFolder
     * @author snow
     * @date 2021年11月25日
     * @Description: 复制文件夹
     * @param @param inFolder
     * @param @param outFolder
     * @param @throws IOException 参数
     * @return void 返回类型
     * @throws
     */
    private static void copyFolder(File inFolder, File outFolder) throws IOException 
        //遍历文件
        File[] files = inFolder.listFiles();
        for (File file : files) 
            //文件复制
            if (file.isFile())
                copyFile(file,outFolder);
            else if (file.isDirectory())
                //递归复制这个子文件夹
                File newFolder = new File(outFolder,file.getName());
                if (!newFolder.exists())
                    newFolder.mkdirs();
                
                //递归子文件夹
                copyFolder(file,newFolder);
            
        
    
    
    /**
     * @Title: copyFile
     * @author snow
     * @date 2021年11月25日
     * @Description: 复制文件
     * @param @param file
     * @param @param outFolder 参数
     * @return void 返回类型
     * @throws
     */
    public static void copyFile(File file, File outFolder)
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        File nf = new File(outFolder, file.getName());

        try 
            bis = new BufferedInputStream(new FileInputStream(file));
            bos = new BufferedOutputStream(new FileOutputStream(nf));
            //一次读取字节
            byte[] bytes = new byte[1024];
            //储存读的字节数
            int num = 0;
            while ((num=bis.read(bytes))!= -1)
                bos.write(bytes,0,num);
            
             catch (IOException e) 
                e.printStackTrace();
             finally 
                try 
                    if(bis != null)
                        bos.close();
                    
                    if(bos != null)
                        bos.close();
                    
                 catch (IOException e) 
                    e.printStackTrace();
                
            
        

 

以上是关于IO复制文件到另一个地方的主要内容,如果未能解决你的问题,请参考以下文章

使用Objective-c中的进度条将文件从一个地方复制到另一个地方[重复]

java IO将一个文件复制到另一个

复制文件夹下面所有的文件到另一个地方作为备份

Java File IO 练习题:把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

如何将文件从一个位置复制到另一个位置?

如何将文件从一个位置复制到另一个位置?