zoukankan      html  css  js  c++  java
  • Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

                Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

                                        作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.字符缓冲流

      字符缓冲流根据流的方向,共有2个:

          1>. 写入数据到流中,字节缓冲输出流 BufferedReader

          2>.读取流中的数据,字节缓冲输入流 BufferedWriter

      完成文本数据的高效的写入与读取操作。

     

    二.字符输出缓冲流(BufferedWriter

     BufferedWriter有一个特有的方法就是newLine,可以解决Windows和Linux换行符不同的困扰。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.note5;
     8 
     9 import java.io.BufferedWriter;
    10 import java.io.FileWriter;
    11 import java.io.IOException;
    12 
    13 public class BufferedWriteDemo {
    14     public static void main(String[] args) throws IOException {
    15         //创建字符输出流,封装文件
    16         FileWriter fw = new FileWriter("yinzhengjie.txt");
    17         BufferedWriter bfw = new BufferedWriter(fw);
    18         //写入一个字符
    19         bfw.write(97);
    20         //写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
    21         bfw.newLine();
    22         bfw.flush();
    23         //写入一个字符数组
    24         bfw.write("尹正杰".toCharArray());
    25         //写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
    26         bfw.newLine();
    27         bfw.flush();
    28         //写入字符串
    29         bfw.write("yinzhengjie");
    30         //写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
    31         bfw.newLine();
    32         bfw.flush();
    33         bfw.close();
    34         
    35     }
    36 }

     三.字符缓冲输入流(BufferedReader)

     

      从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.note5;
     8 
     9 import java.io.BufferedReader;
    10 import java.io.FileReader;
    11 import java.io.IOException;
    12 
    13 public class BufferedReaderDemo {
    14     public static void main(String[] args) throws IOException {
    15         //创建字符输入流缓冲流对象,构造方法传递字符输入流,包装数据源文件
    16         BufferedReader bfr = new BufferedReader(new FileReader("yinzhengjie.txt"));
    17         //调用缓冲流的方法readLine()读取文本行
    18         //循环读取文本行,结束条件readLine()返回null。
    19         String line;
    20         //定义以后计数器,用来定义行号,当然BufferedReader也有一个子类LineNumberReader也可以实现换行号的读取。
    21         int lineNumber = 0;
    22         while( ( line = bfr.readLine()) != null) {
    23             lineNumber++;
    24             //此时的line本身是没有换行符号的,因为换行符已经被readLine给脱掉了,因此我们应该调用println。
    25             System.out.println(lineNumber+"  "+line);
    26         }
    27         bfr.close();
    28     }
    29 }

    四.字符缓冲区流复制文本文件

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.note5;
     8 
     9 import java.io.BufferedReader;
    10 import java.io.BufferedWriter;
    11 import java.io.FileReader;
    12 import java.io.FileWriter;
    13 import java.io.IOException;
    14 
    15 public class CopyFile {
    16     public static void main(String[] args) throws IOException {
    17         BufferedReader bfr = new BufferedReader(new FileReader("yinzhengjie.txt"));
    18         BufferedWriter bfw = new BufferedWriter(new FileWriter("yinzhengjie.backup"));
    19         
    20         //读取文本行,读一行,写一行,写换行
    21         String line;    //默认为null
    22         while( (line = bfr.readLine()) != null ) {
    23             bfw.write(line);
    24             bfw.newLine();
    25             bfw.flush();
    26         }
    27         bfw.close();
    28         bfr.close();
    29     }
    30 }
  • 相关阅读:
    Atitit.Java exe bat  作为windows系统服务程序运行
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8982743.html
Copyright © 2011-2022 走看看