IO 文件夹的拷贝

Posted 854594834-yt

tags:

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

package FileCopy;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.Queue;

public class CopyFileV2 {
    public static void main(String agrs[]){
        String srcFileName = "F:" + File.separator + "ppt";
        String destFilePath = "D:" + File.separator + "copyFileExam";
        
//        copy(srcFileName, destFilePath);
        rNoCopy(srcFileName, destFilePath);
        System.out.println("拷贝完成!!!");
        
    }
    
    private static void rNoCopy(String fileName, String destFileName){
        
        Queue<String[]> fPQ = new LinkedList<String[]>();
        String[] s = new String[2];
        s[0] = fileName;
        s[1] = destFileName;
        fPQ.offer(s);
        
        int i = 0;
        
        while(!fPQ.isEmpty()){
            
            for(String[] st : fPQ){
                for(String str : st)
                System.out.println(str);
            }
            
            System.out.println("
" + i++);
            String[] filePath = fPQ.poll();
            
            File file = new File(filePath[0]);
            File destFile = new File(filePath[1]);
            
            if(!destFile.exists()){
                destFile.mkdirs();
                System.out.println("创建多级列表成功!!!");
            }
            
            File files[] = file.listFiles();
            
            for(File f: files){
                if(f.isFile()){
                    fileCopy(f.getPath(), filePath[1] + File.separator + f.getName());
                }
                else if(f.isDirectory()){
                    String[] temps = new String[2]; 
                    
                    temps[0] = f.getPath();
                    temps[1] = filePath[1] + File.separator + f.getName();
                    
                    fPQ.offer(temps);
                }
            }
        }
    }

    private static void copy(String fileName, String destFileName){
        File file = new File(fileName);
        File destFile = new File(destFileName);
        
        File files[] = file.listFiles();
        
        if(!destFile.exists()){
            destFile.mkdirs();
        }
        
        for(File f: files){
            if(f.isFile()){
                fileCopy(f.getPath(), destFileName + File.separator + f.getName());
            }
            else if(f.isDirectory()){
                copy(f.getPath(), destFileName + File.separator + f.getName());
            }
        }
        
    }
    
    private static void fileCopy(String fileName, String destFileName){
        System.out.println("正在拷贝文件!!!");
        File file = new File(fileName);
        File destFile = new File(destFileName);
        
//        InputStream is = null;
//        OutputStream os = null;
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;

        try {
            bis = new BufferedInputStream(new FileInputStream(file));
            bos = new BufferedOutputStream(new FileOutputStream(destFile));
            
            byte bytes[] = new byte[1024];
            while( bis.read(bytes) != -1 ){
                bos.write(bytes);
                bos.flush();
            }
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
//                os.flush();
//                is.close();
//                os.close();
                bos.flush();
                bis.close();
                bos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
//        private static void getAllFileList(String fileName){
//            File file = new File(fileName);
//            File files[] = file.listFiles();
//            
//            for(File f: files){
//                if(f.isFile()){
//                    
//                }
//                if(f.isDirectory()){
//                    getAllFileList(f.toString());
//                }
//                else {
//                    System.out.println(f.getName());
//                }
//            }
//        
//    }
    }
}

 

以上是关于IO 文件夹的拷贝的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

Java拷贝文件到对应的路径

急切求高手编写一个 java程序,大体是关于IO流的文件拷贝

通过IO流创建文件然后 通过io流拷贝文件

IO实战-RandomAccessFile在本地实现伪断点续传