zoukankan      html  css  js  c++  java
  • 使用BufferedReader和BufferedWriter读写文件

    原理:BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再8k。   
      而直接读物理流,是按字节来读。   
      对物理流的每次读取,都有IO操作。IO操作是最耗费时间的。     
      BufferedReader就是减少了大量IO操作,而为你节省了时间。   
       简单的说,一次IO操作,读取一个字节也是读取,读取8k个字节也是读取,两者花费时间相差不多。而一次IO的来回操作却要耗费大量时间。   
      好比是一辆大型汽车(设装100人),要去车站接人到公司,接一个人也是接,接100个人也是接,而时间一样。显然,接100个人最划算。 
      物理流就是一次一个字节(一个人)   
      Buffered就是一次8k个字节(100个人)   
      对于读取定长字节文件,当然BufferedReader更快了!

    Java代码  收藏代码
    1. import java.io.*;  
    2. public class Test11 {  
    3.     private static BufferedReader br = null;  
    4.     private static File file = null;  
    5.     private static BufferedWriter bw = null;  
    6.     public static void main(String[] args) {  
    7.         String b = null;  
    8.         file = new File("D:\\abc.txt");  
    9.         if (!file.exists() != false) {  
    10.             try {  
    11.                 file.createNewFile();  
    12.                   
    13.             } catch (IOException e) {  
    14.                 e.printStackTrace();  
    15.             }  
    16.           }  
    17.          try {  
    18.             bw = new BufferedWriter(new FileWriter(file));  
    19.             FileReader fr = new FileReader("D:\\Log.txt");  
    20.             br = new BufferedReader(fr);  
    21.             while ((b = br.readLine()) != null) {  
    22.                 System.out.println(b);  
    23.                 bw.write(b);//输出字符串  
    24.                 bw.newLine();//换行  
    25.                 bw.flush();  
    26.             }  
    27.         } catch (Exception e) {  
    28.             e.printStackTrace();  
    29.         }finally {  
    30.             try {  
    31.                 br.close();  
    32.                 //bw.close();  
    33.             } catch (IOException e) {  
    34.                 e.printStackTrace();  
    35.             }  
    36.         }  
    37.     }  
    38.   
    39.   
    40. }  
     
  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/qizhenglong/p/2850853.html
Copyright © 2011-2022 走看看