您的位置:首页 > Web前端

Java基础知识强化之IO流笔记38:字符流缓冲流之BufferedWriter / BufferedReader使用

2015-10-11 09:09 781 查看
1. 字符流缓冲流:

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

  BufferedWriter:字符缓冲输出流

  BufferedReader:字符缓冲输入流

2. BufferedWriter使用:

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

(1)[b]BufferedWriter的构造方法:[/b]

构造方法摘要
BufferedWriter(Writer out)

创建一个使用默认大小输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out,
int sz)

创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
(2)[b][b]BufferedWriter的[/b]功能方法:[/b]

 方法摘要
void    close()
关闭此流,但要先刷新它。
void    flush()
刷新该流的缓冲。
void    newLine()
写入一个行分隔符。
void    write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void    write(int c)
写入单个字符。
void    write(String s, int off, int len)
写入字符串的某一部分。


(3)[b][b][b]BufferedWriter使用代码示例:[/b][/b][/b]

 package cn.itcast_05;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/*
* BufferedWriter:字符缓冲输出流
* 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
* 可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
*/
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
// BufferedWriter(Writer out)
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
// new FileOutputStream("bw.txt")));

BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));

bw.write("hello");
bw.write("world");
bw.write("java");
bw.flush();

bw.close();
}
}


运行效果,如下:





3. BufferedReader 使用:

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

(1)[b]BufferedReader 的构造方法:[/b]

构造方法摘要
BufferedReader(Reader in)

创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in,
int sz)

创建一个使用指定大小输入缓冲区的缓冲字符输入流。
(2)[b][b]BufferedReader [/b][b]的[/b]功能方法:[/b]

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


(3)[b][b]BufferedReader 使用代码示例:[/b][/b]

 package cn.itcast_05;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/*
* BufferedReader
* 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
* 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
*
* BufferedReader(Reader in)
*/
public class BufferedReaderDemo {
public static void main(String[] args) throws IOException {
// 创建字符缓冲输入流对象
BufferedReader br = new BufferedReader(new FileReader("bw.txt"));

// 方式1:一次读一个字符
// int ch = 0;
// while ((ch = br.read()) != -1) {
// System.out.print((char) ch);
// }

// 方式2:一次读一个字符数组
char[] chs = new char[1024];
int len = 0;
while ((len = br.read(chs)) != -1) {
System.out.print(new String(chs, 0, len));
}

// 释放资源
br.close();
}
}


运行效果,如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: