黑马程序员技术交流社区

标题: IO流复制文件的9种方法总结---代码实现 [打印本页]

作者: small_horse    时间: 2015-8-25 01:13
标题: IO流复制文件的9种方法总结---代码实现
//完成复制文件的9种方法
public class Demo1 {
        public static void main(String[] args) throws IOException {
                //比较一下以下几种复制文件的方法的耗时
                long before = System.currentTimeMillis();
                // method1();
                // method2();
                // method3();
                // method4();
                // method5();
                // method6();
                // method7();
                // method8();
                method9();
                long after = System.currentTimeMillis();
                System.out.println(after - before);

        }
   //基本字节流一次复制一个字节
        private static void method1() throws IOException {
                FileInputStream fis = new FileInputStream("a.txt");
                FileOutputStream fos = new FileOutputStream("b.txt");
                int b;
                while ((b = fis.read()) != -1) {
                        fos.write(b);
                }
                fis.close();
                fos.close();

        }
   //基本字节流一次复制一个字节数组
        private static void method2() throws IOException {
                FileInputStream fis = new FileInputStream("a.txt");
                FileOutputStream fos = new FileOutputStream("b.txt");
                int len;
                byte[] bytes = new byte[1024];
                while ((len = fis.read()) != -1) {
                        fos.write(bytes, 0, len);
                }
                fis.close();
                fos.close();
        }
  //高效字节流一次复制一个字节
        private static void method3() throws IOException {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                                "a.txt"));
                BufferedOutputStream bos = new BufferedOutputStream(
                                new FileOutputStream("b.txt"));
                int b;
                while ((b = bis.read()) != -1) {
                        bos.write(b);
                }
                bis.close();
                bos.close();

        }
  //高效字节流一次复制一个字节数组
        private static void method4() throws IOException {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                                "a.txt"));
                BufferedOutputStream bos = new BufferedOutputStream(
                                new FileOutputStream("b.txt"));
                int len;
                byte[] bytes = new byte[1024];
                while ((len = bis.read(bytes)) != -1) {
                        bos.write(bytes, 0, len);
                }
                bis.close();
                bos.close();
        }
   //基本字符流一次复制一个字节
        private static void method5() throws IOException {
                FileReader fr = new FileReader("a.txt");
                FileWriter fw = new FileWriter("b.txt");
                int b;
                while ((b = fr.read()) != -1) {
                        fw.write(b);
                }
                fr.close();
                fw.close();

        }
  //基本字符流一次复制一个字节数组
        private static void method6() throws IOException {
                FileReader fr = new FileReader("a.txt");
                FileWriter fw = new FileWriter("b.txt");
                int len;
                char[] chars = new char[1024];
                while ((len = fr.read(chars)) != -1) {
                        fw.write(chars, 0, len);
                }
                fr.close();
                fw.close();

        }
//高效字符流一次复制一个字节
        private static void method7() throws IOException {
                BufferedReader br = new BufferedReader(new FileReader("a.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
                int b;
                while ((b = br.read()) != -1) {
                        bw.write(b);
                }
                br.close();
                bw.close();

        }
  //高效字符流一次复制一个字符数组
        private static void method8() throws IOException {
                BufferedReader br = new BufferedReader(new FileReader("a.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
                int len;
                char[] chars = new char[1024];
                while ((len = br.read(chars)) != -1) {
                        bw.write(chars, 0, len);
                }
                br.close();
                bw.close();

        }
//高效字符流一次复制一行
        private static void method9() throws IOException {
                BufferedReader br = new BufferedReader(new FileReader("a.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
                String line;
                while ((line = br.readLine()) != null) {

                        bw.write(line);
                        bw.newLine();
                }
                br.close();
                bw.close();

        }

}

作者: 肚小糖    时间: 2015-8-25 08:46
很好很强大!
作者: vipsong    时间: 2015-8-25 09:18
总结很全面
作者: q370349954    时间: 2015-8-25 09:21
总结很重要。。。
作者: myself123    时间: 2015-8-25 10:19
楼主牛人啊,mark一下
作者: 三分之一    时间: 2015-8-25 14:52
楼主太强大了,向你学习
作者: 痴人说梦    时间: 2015-8-25 15:07
总结的很好···
作者: 星语千寻    时间: 2015-8-25 15:15
很好很厉害。。。。
作者: T-l-H、小生    时间: 2015-8-25 15:54
溜溜溜溜~~~
作者: 风华正茂    时间: 2015-8-25 16:04
楼主总结得不错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2