zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记38:字符流缓冲流之BufferedWriter / BufferedReader使用

    1. 字符流缓冲流:

    字符流为了高效读写,也提供了对应的字符缓冲流。

      BufferedWriter:字符缓冲输出流

      BufferedReader:字符缓冲输入流

    2. BufferedWriter使用:

        将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。

    (1)BufferedWriter的构造方法:

    构造方法摘要
    BufferedWriter(Writer out)
              创建一个使用默认大小输出缓冲区的缓冲字符输出流。
    BufferedWriter(Writer out, int sz)
              创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

    (2)BufferedWriter的功能方法:

     1 方法摘要
     2  void    close() 
     3           关闭此流,但要先刷新它。
     4  void    flush() 
     5           刷新该流的缓冲。
     6  void    newLine() 
     7           写入一个行分隔符。
     8  void    write(char[] cbuf, int off, int len) 
     9           写入字符数组的某一部分。
    10  void    write(int c) 
    11           写入单个字符。
    12  void    write(String s, int off, int len) 
    13           写入字符串的某一部分。

    (3)BufferedWriter使用代码示例:

     1 package cn.itcast_05;
     2 
     3 import java.io.BufferedWriter;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 /*
     8  * BufferedWriter:字符缓冲输出流
     9  * 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 
    10  * 可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。 
    11  */
    12 public class BufferedWriterDemo {
    13     public static void main(String[] args) throws IOException {
    14         // BufferedWriter(Writer out)
    15         // BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
    16         // new FileOutputStream("bw.txt")));
    17 
    18         BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
    19 
    20         bw.write("hello");
    21         bw.write("world");
    22         bw.write("java");
    23         bw.flush();
    24 
    25         bw.close();
    26     }
    27 }

    运行效果,如下:

    3. BufferedReader 使用:

        从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 

    (1)BufferedReader 的构造方法:

    构造方法摘要
    BufferedReader(Reader in)
              创建一个使用默认大小输入缓冲区的缓冲字符输入流。
    BufferedReader(Reader in, int sz)
              创建一个使用指定大小输入缓冲区的缓冲字符输入流。

    (2)BufferedReader 功能方法:

     1 方法摘要
     2  void    close() 
     3           关闭该流并释放与之关联的所有资源。
     4  void    mark(int readAheadLimit) 
     5           标记流中的当前位置。
     6  boolean    markSupported() 
     7           判断此流是否支持 mark() 操作(它一定支持)。
     8  int    read() 
     9           读取单个字符。
    10  int    read(char[] cbuf, int off, int len) 
    11           将字符读入数组的某一部分。
    12  String    readLine() 
    13           读取一个文本行。
    14  boolean    ready() 
    15           判断此流是否已准备好被读取。
    16  void    reset() 
    17           将流重置到最新的标记。
    18  long    skip(long n) 
    19           跳过字符。

    (3)BufferedReader 使用代码示例:

     1 package cn.itcast_05;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.FileReader;
     5 import java.io.IOException;
     6 
     7 /*
     8  * BufferedReader
     9  * 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 
    10  * 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 
    11  * 
    12  * BufferedReader(Reader in)
    13  */
    14 public class BufferedReaderDemo {
    15     public static void main(String[] args) throws IOException {
    16         // 创建字符缓冲输入流对象
    17         BufferedReader br = new BufferedReader(new FileReader("bw.txt"));
    18 
    19         // 方式1:一次读一个字符
    20         // int ch = 0;
    21         // while ((ch = br.read()) != -1) {
    22         // System.out.print((char) ch);
    23         // }
    24 
    25         // 方式2:一次读一个字符数组
    26         char[] chs = new char[1024];
    27         int len = 0;
    28         while ((len = br.read(chs)) != -1) {
    29             System.out.print(new String(chs, 0, len));
    30         }
    31 
    32         // 释放资源
    33         br.close();
    34     }
    35 }

    运行效果,如下:

  • 相关阅读:
    AngularJS Directive 隔离 Scope 数据交互
    Web(Jsp+ Servlet)开发中如何解决中文乱码问题
    MySQL中进行模糊搜索的一些问题
    RequireJS 模块的定义与加载
    Mysql 正则表达式 判断字段值不包含数字
    使用命令行将Excel数据表导入Mysql中的方法小结
    js 去除字符串左右两端的空格
    js 计算两个时间差
    在MySQL中创建实现自增的序列(Sequence)的教程
    ajax post传值
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4868775.html
Copyright © 2011-2022 走看看