zoukankan      html  css  js  c++  java
  • JavaIO(06)文件复制

    文件复制一般是采用两种方式进行操作:
    1:将源文件中的内容全部读取到内存中,并一次性的写入到目标文件中;(不常用这种方式)
    2:不将源文件中的内容全部读取进来,而是采用边读边写的方式;
     
    实例01:
    package cn.itcast05;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    //一次一个字节复制
    //一次一个字节数组复制
    
    public class CopyFileDemo01 {
        public static void main(String[] args) throws IOException {
            CopyFile2();
        }
        public static void CopyFile() throws IOException
        {
            FileInputStream fis = new FileInputStream("a.txt");
            FileOutputStream fos = new FileOutputStream("a2.txt");
    
            int c;
            while((c=fis.read())!=-1)
            {
                fos.write(c);
            }
            fis.close();
            fos.close();
        }
        public static void CopyFile2() throws IOException
        {
            FileInputStream fis = new FileInputStream("a.txt");
            FileOutputStream fos = new FileOutputStream("a3.txt");
    
            int len;
    
            byte[] bytes = new byte[1024];
    
            while((len=fis.read(bytes))!=-1)
            {
                fos.write(bytes,0,len);
            }
            fis.close();
            fos.close();
    
        }
    }
    

      

    实例02:
    package cn.itcast05;
    
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    //一次一个字符复制
    //一次一个字符数组复制
    
    
    public class CopyFileDemo02 {
        public static void main(String[] args) throws IOException {
            CopyFile2();
        }
        public static void CopyFile() throws IOException
        {
            FileReader fr = new FileReader("a.txt");
            FileWriter fw = new FileWriter("a4.txt");
    
            int c;
    
            while((c=fr.read())!=-1)
            {
                fw.write(c);
            }
            fr.close();
            fw.close();
        }
        public static void CopyFile2() throws IOException
        {
            FileReader fr = new FileReader("a.txt");
            FileWriter fw = new FileWriter("a5.txt");
    
            int len;
            char[] chars = new char[1024];
    
            while((len=fr.read(chars))!=-1)
            {
                fw.write(chars, 0, len);
            }
            fr.close();
            fw.close();
        }
    
    }
    

      

    实例03:
    
    package cn.itcast05;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    //完成单级文件夹的复制,即:
    //a文件夹下有多个文件,没有文件夹,将a文件夹中的所有内容,复制到b文件夹中即可。
    //建议方法声明:
    //c
    //将srcDir文件夹的内容,复制到destDir文件夹中
    
    public class CopyFileDemo03 {
        public static void main(String[] args) throws IOException {
            File srcDir = new File("a");
            File destDir = new File("b");
            copyDir(srcDir, destDir);   
    }
        public static void copyDir(File srcDir,File destDir) throws IOException
        {
            if(!srcDir.exists())
            {
                System.out.println("源文件不存在");   
                return;
            }
            if(!destDir.exists())
            {
                System.out.println("目的文件不存在,需要创建");
                destDir.mkdir();
            }
            File[] listFiles = srcDir.listFiles();
            for (File file : listFiles) {
                if(file.isFile())
                {
                    String name = file.getName();
                    copyFile(file, name, destDir);
                }
    
            }
        }
    
        public static void copyFile(File file,String name,File destDir) throws IOException
        {
            FileInputStream fis = new FileInputStream(file);
            FileOutputStream fos = new FileOutputStream(new File(destDir,name));
    
            int len;
            byte[] bytes = new byte[1024];
            while((len=fis.read(bytes))!=-1)
            {
                fos.write(bytes,0,len);
            }
            fis.close();
            fos.close();
        }
    }
    

      

  • 相关阅读:
    CentOS7安装iptables防火墙
    Linux下ntpdate时间同步
    linux下的时间及时区设置
    linux下的DNS
    sysctl
    ab -n -c
    VIM 中 查看{}是否闭合,按%跳转到下个闭合
    要删除共享的初始登陆名 cmd下输入net use * /delete
    case in esac ` for in do done ` while true / false
    read op case $op in
  • 原文地址:https://www.cnblogs.com/qlwang/p/5615630.html
Copyright © 2011-2022 走看看