• 文件拷贝案例


    用到的知识点有:FileInputStream、FileOutputStream、File对象的常用方法、重点是递归方法路径的拼接

    package com.yc.day0829;
    
    import java.io.*;
    
    /**
     * @program: javaSE
     * 描述:
     * 将D:\aa文件全部copy到c盘中
     * @author: yc
     * @create: 2020-08-29 15:28
     **/
    public class CopyTest {
        public static void main(String[] args) {
    //拷贝源和拷贝目标的路径都是可能改变的。 File srcFile
    = new File("D:\aa"); //拷贝源 File destFile = new File("c:\"); //拷贝目标 copyDir(srcFile,destFile); //调用方法拷贝 } private static void copyDir(File srcFile, File destFile) { if(srcFile.isFile()){ //源File对象是文件的话,就将文件进行I/o读写操作。 FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(srcFile); //这里使用endwith()方法是因为路径尾部有可能没有带“”,可能程序会出错。 String path = (destFile.getAbsolutePath().endsWith("\")?destFile.getAbsolutePath():destFile.getAbsolutePath()+"\") +srcFile.getAbsolutePath().substring(3); //这里的3是根据你的拷贝源的需求来截取的。path是拷贝目标下文件的路径。 fos = new FileOutputStream(path); //创建fos对象的同时也会在指定路径的硬盘上生成文件。初学者疑惑的地方 byte[] bytes = new byte[1024*1024]; int c = 0; while((c = fis.read(bytes))!= -1){ fos.write(bytes,0,c); } fos.flush(); //刷新 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } return; //如果是一个文件的话,递归结束 } //获取源下面的子目录 File[] files = srcFile.listFiles(); for (File file : files) { if(file.isDirectory()){ //新建对应的目录 String srcDir = file.getAbsolutePath(); String destDir = (destFile.getAbsolutePath().endsWith("\")?destFile.getAbsolutePath():destFile.getAbsolutePath()+"\") +srcDir.substring(3); //destDir是拷贝目标下的文件夹的路径。 File newFile = new File(destDir); if(!newFile.exists()){ //File对象如果不存在,就创建多级文件夹。 newFile.mkdirs(); } } //递归 copyDir(file,destFile); //重点理解。 } } }
  • 相关阅读:
    scikit-learn算法选择路径图
    mac 添加new file.md
    mac-VBox-Centos6.6安装增强功能
    VirtualBox中安装CentOS使得在ssh和外网都能正常链接
    vboxnetctl: no such file or directory
    mac vim 配色
    埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B合约数
    codeforces 965E Trie+multiset
    bzoj 4337 树的同构
    codeforces 963B Destruction of a Tree
  • 原文地址:https://www.cnblogs.com/yclss123/p/13582913.html
Copyright © 2020-2023  润新知