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 }
  • 相关阅读:
    转载—javascript 设计模式 文章很长,请自备瓜子,水果和眼药水
    js 中call()方法的使用
    上传、下载
    steps1>Struct2配置文件
    页面刷新
    steps1>Struct2控制器组件
    steps1>Struct2概述
    steps1>Struct2基本流程
    steps1>Struct2struts.xml
    steps1>Struct2web.xml
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8982743.html
Copyright © 2011-2022 走看看