zoukankan      html  css  js  c++  java
  • IO流的学习--文件夹下文件的复制

    package com.nick.IO;
    
    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;
    
    /**
     * 练习:复制文件夹下的所有内容到另一个文件夹中(代码创建目标文件夹)
     * e:\io中的内容复制到d:\io(代码创建)下
     * 
     * 基本思路
     * 1、动态生成目的文件夹的名字
     * 2、动态生成文件夹中的内容
     * 3、别把各种变量名弄混
     * @author nickY
     *
     */
    public class CopyTest2 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            copyDir(new File("e:\io"), new File("d:\"));
        }
        
        public static void copyDir(File src, File dest) {
            String srcFolderName = src.getName(); //得到io
            
            File destFolderName = new File(dest, srcFolderName);
            //System.out.println(destFileName.getPath());
            destFolderName.mkdirs(); //在d盘下创建了名为io的文件夹
            
            //遍历源文件夹中的文件
            File[] srcFilesNames = src.listFiles();
            
            for (File srcFileName : srcFilesNames) {
                //System.out.println(file); 带路径的文件
                String fileName = srcFileName.getName(); //文件名
                File destFilesNames = new File(destFolderName, fileName); //在目标文件夹下创建File对象
                //进行复制
                copyFile(srcFileName, destFilesNames);
            }
            
        }
    
        private static void copyFile(File srcFileName, File destFilesNames) {
            // TODO Auto-generated method stub
            BufferedInputStream bufferedInputStream = null;
            BufferedOutputStream bufferedOutputStream = null;
            try {
                FileInputStream fileInputStream = new FileInputStream(srcFileName);
                FileOutputStream fileOutputStream = new FileOutputStream(destFilesNames);
                bufferedInputStream = new BufferedInputStream(fileInputStream);
                bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
                
                byte[] b = new byte[1024];
                int len = 0;
                while((len = bufferedInputStream.read(b)) != -1) {
                    bufferedOutputStream.write(b, 0, len);
                }
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                try {
                    if(bufferedOutputStream != null) {
                        bufferedOutputStream.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    if(bufferedInputStream != null) {
                        bufferedInputStream.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
            
        }
    
    }

  • 相关阅读:
    星力九代 命中算法源代码 特殊用户处理 点控调整
    Navicat for PostgreSQL 必须知道的十大功能
    如何在某个按钮上触发 bootstarp Modal 组件
    yii2.0 DetailView 自定义样式
    Jquery 利用单个复选款(checkbox)实现全选、反选
    【转载】CentOS LVM磁盘扩容
    VMware ESXi CentOS Linux虚拟机安装VMware Tools教
    Shell 脚本编程
    powershell学习
    Ruby应用记录:修改文件中某个字符串
  • 原文地址:https://www.cnblogs.com/nick9527/p/9758311.html
Copyright © 2011-2022 走看看