• Java :BufferedWriter类和BufferedReader类的构造方法、主要方法


    BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以效率比没有缓冲区的高。

    一、BufferedWriter 类

    构造方法:bufferedWriter bf = new bufferedWriter(Writer out );

    主要方法:void write(char ch);//写入单个字符。

                      void write(char []cbuf,int off,int len)//写入字符数据的某一部分。

                      void write(String s,int off,int len)//写入字符串的某一部分。

                      void newLine()//写入一个行分隔符。

                      void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。

                      void close();//关闭此流,再关闭前会先刷新他。

    [java] view plain copy
    1. package Buffered;  
    2.   
    3. import java.io.BufferedWriter;  
    4. import java.io.FileWriter;  
    5. import java.io.IOException;  
    6.   
    7. public class BufferedWriterDemo {  
    8.     public static void main(String[] args) throws IOException {  
    9.         FileWriter fw = new FileWriter("Buffered.txt");  
    10. //      fw.write("ok168");  
    11. //      fw.close();  
    12.         /** 
    13.          * 为了提高写入的效率,使用了字符流的缓冲区。 
    14.          * 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。 
    15.          */  
    16.         BufferedWriter bufw = new BufferedWriter(fw);  
    17.           
    18.         //使用缓冲区中的方法将数据写入到缓冲区中。  
    19.         bufw.write("hello world !");  
    20.         bufw.newLine();  
    21.         bufw.newLine();  
    22.         bufw.write("!hello world !");  
    23.         bufw.write("!hello world !");  
    24.         //使用缓冲区中的方法,将数据刷新到目的地文件中去。  
    25.         bufw.flush();  
    26.         //关闭缓冲区,同时关闭了fw流对象  
    27.         bufw.close();     
    28.     }  
    29. }  


    二、BufferedReader类。

    构造方法:BufferedReader br = new BufferReader(Reader in);

    主要方法:

    int read();//读取单个字符。

    int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到                                                            尾部 ,返回-1。

    String readLine();                        //读取一个文本行。

    void close();                                //关闭该流。并释放与该流相关的所有资源。

    自定义的一个myBufferedReader类。

    [java] view plain copy
    1. package Buffered;  
    2.   
    3. import java.io.FileReader;  
    4. import java.io.IOException;  
    5.   
    6. public class MyBufferedReader {  
    7.       
    8.     private FileReader fr;  
    9.     private char []buf = new char[1024];  
    10.     private int count = 0;  
    11.     private int pos = 0;  
    12.     public MyBufferedReader(FileReader f){  
    13.         this.fr = f;          
    14.     }  
    15.     public int myRead() throws IOException{  
    16.         if(count == 0){  
    17.             count = fr.read(buf);  
    18.             pos = 0;  
    19.         }  
    20.         if(count<0)  
    21.             return -1;  
    22.         int ch = buf[pos++];  
    23.         count--;  
    24.         return ch;   
    25.     }  
    26.       
    27.     public String myReadLine() throws IOException{  
    28.         StringBuilder sb = new StringBuilder();  
    29.         int ch = 0;  
    30.         while ((ch = myRead()) != -1) {  
    31.             if (ch == ' ')  
    32.                 continue;  
    33.             if (ch == ' ')  
    34.                 return sb.toString();  
    35.             sb.append((char) ch);  
    36.             if(count == 0)  
    37.                 return sb.toString();             
    38.         }  
    39.         return null;  
    40.     }  
    41.     public void myClose() throws IOException {  
    42.         fr.close();  
    43.     }  
    44. }  

    使用bufferedReader 和bufferWriter方法写的一个复制文本的小程序

    [java] view plain copy
      1. package IOtest;  
      2.   
      3. import java.io.BufferedReader;  
      4. import java.io.BufferedWriter;  
      5. import java.io.FileReader;  
      6. import java.io.FileWriter;  
      7. import java.io.IOException;  
      8.   
      9. public class TextCopyByBuf {  
      10.   
      11.     /** 
      12.      * 首先创建读取字符数据流对象关联所要复制的文件。 
      13.      * 创建缓冲区对象关联流对象。 
      14.      * 从缓冲区中将字符创建并写入到目的文件中。 
      15.      * @throws IOException  
      16.      */  
      17.     public static void main(String[] args) throws IOException {  
      18.         FileReader fr = new FileReader("C:\demo.txt");  
      19.         FileWriter fw = new FileWriter("D:\love.txt");  
      20.         BufferedReader bufr = new BufferedReader(fr);  
      21.         BufferedWriter bufw = new BufferedWriter(fw);  
      22.         //一行一行的寫。  
      23.         String line = null;  
      24.         while((line = bufr.readLine()) != null){  
      25.             bufw.write(line);  
      26.             bufw.newLine();  
      27.             bufw.flush();  
      28.         }  
      29.     /*  一個字節一個字節的寫。 
      30.         int ch = 0; 
      31.         while((ch = bufr.read())!=-1){ 
      32.             bufw.write(ch); 
      33.         }*/  
      34.         bufr.close();  
      35.         bufw.close();  
      36.     }  
      37. }  
  • 相关阅读:
    6、CC2541修改按键调节广播发送功率例程为持续发送4DB的蓝牙基站
    [nRF51822] 16、nRF51822的随机数生成器,及随机数生成器的一些知识(可以帮您补补随机数发生器的知识)
    [PCB设计] 4、BAT脚本处理AD生成的GERBER文件为生产文件
    [异常解决] 奇巧淫技——VirtualBox中的linux无显示启动,并在win7上远程控制
    [PCB设计] 3、用CAM350修改GERBER文件(删除某些部分)
    [异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"
    [异常解决] How to build a gcc toolchain for nRF51 on linux (very detailed!!!)
    [异常解决] windows用SSH和linux同步文件&linux开启SSH&ssh client 报 algorithm negotiation failed的解决方法之一
    [模拟电路] 2、Passive Band Pass Filter
    Docker常用命令
  • 原文地址:https://www.cnblogs.com/dengyungao/p/7524884.html
Copyright © 2020-2023  润新知