一、BufferedReader
1、java.lang.Object
java.io.Reader
java.io.BufferedReader
2、public class BufferedReader extends Reader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
3、构造方法
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz)
创建一个使用指定大小输入缓冲区的缓冲字符输入流。
4、常用方法
(1)public String readLine() throws IOException
读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('/n')、回车 ('/r') 或回车后直接跟着换行。
返回: 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
抛出: IOException
- 如果发生 I/O 错误
(2)public boolean ready() throws IOException
判断此流是否已准备好被读取。如果缓冲区不为空,或者基础字符流已准备就绪,则缓冲的字符流准备就绪。
返回: 如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。
抛出: IOException
- 如果发生 I/O 错误
(3)public void reset() throws IOException
将流重置为最新的标记。
(4)public void close() throws IOException
关闭该流。
抛出: IOException
- 如果发生 I/O 错误