• IO流学习之字符流(二)


    用字符流完成文档的复制:

    测试文档:

    代码1:

     1 package InputOutput;
     2 
     3 import java.io.FileReader;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 public class CopyFileDemo1 {
     8     public static void main(String[] args) throws IOException {
     9         // 指定读取的文件位置
    10         String path1 = "E:\JavaCodeDemo\InputOutput\filewriter\CopyReader.txt";
    11         // 指定写入的文件位置
    12         String path2 = "E:\JavaCodeDemo\InputOutput\filewriter\CopyWriter.txt";
    13         // 创建输入流对象关联数据源文件
    14         FileReader reader = new FileReader(path1);
    15         // 创建输出流对象关联目的地文件
    16         FileWriter writer = new FileWriter(path2);
    17         // 读取文件
    18         int flag = 0;
    19         // 获取复制前时间
    20         long time1 = System.currentTimeMillis();
    21         while ((flag = reader.read()) != -1) {
    22             writer.write(flag);
    23         }
    24         // 获取复制后时间
    25         long time2 = System.currentTimeMillis();
    26         // 释放资源
    27         writer.close();
    28         reader.close();
    29         // 输出时间差
    30         System.out.println("时间 : " + (time2 - time1));
    31     }
    32 }

    结果:

    上面代码使用字符流一个字符一个字符的读取,写入,下面尝试用字符数组进行复制文档,数据少时没有什么区别,但数据多了可以提高很多效率!

    代码:

     1 package InputOutput;
     2 
     3 import java.io.FileReader;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 public class CopyFileDemo2 {
     8     public static void main(String[] args) throws IOException {
     9         // 指定读取的文件位置
    10         String path1 = "E:\JavaCodeDemo\InputOutput\filewriter\CopyReader.txt";
    11         // 指定写入的文件位置
    12         String path2 = "E:\JavaCodeDemo\InputOutput\filewriter\CopyWriter.txt";
    13         // 创建输入流对象关联数据源文件
    14         FileReader reader = new FileReader(path1);
    15         // 创建输出流对象关联目的地文件
    16         FileWriter writer = new FileWriter(path2);
    17         // 读取文件
    18         int flag = 0;
    19         // 用字符组读取数据
    20         char[] demo = new char[1024];
    21         // 获取复制前时间
    22         long time1 = System.currentTimeMillis();
    23         while ((flag = reader.read(demo)) != -1) {
    24             writer.write(demo, 0, flag);
    25         }
    26         // 获取复制后时间
    27         long time2 = System.currentTimeMillis();
    28         // 释放资源
    29         writer.close();
    30         reader.close();
    31         // 输出时间差
    32         System.out.println("时间 : " + (time2 - time1));
    33 
    34     }
    35 }

    结果:

  • 相关阅读:
    第一周作业
    第0次作业
    第三次作业
    第二次作业
    第一次作业
    第零次作业
    第三周作业
    第二周作业
    第一周作业
    关于如何学习计算机
  • 原文地址:https://www.cnblogs.com/Bernard94/p/11256692.html
Copyright © 2020-2023  润新知