public class BufferedReader extends Reader
可以指定缓冲区大小,也可以使用默认大小。默认是足够大的用于大多数目的。
在一般情况下,每一个读的读者提出的要求导致相应的读请求是由底层字符或字节流。这是包体周围的read()操作可能是昂贵的任何读者因此为宜,如filereaders和inputstreamreaders。例如,
BufferedReader=新BufferedReader(FileReader(“foo”));将缓冲输入从指定的文件。无缓冲,每次调用read()或readline()可能导致数据被从文件读取,转换成文字,然后返回,这可以是非常低效的。
程序使用datainputstreams文本输入可以通过一个合适的是局部更换每个输入流。
FileReader
,
InputStreamReader
,
Files.newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)
Constructor and Description |
---|
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
|
BufferedReader(Reader in, int sz)
创建一个使用指定大小的输入缓冲区的缓冲字符输入流。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
关闭流并释放与它相关联的任何系统资源。
|
Stream<String> |
lines()
返回一个
Stream ,其中的元素是线从这
BufferedReader 读。
|
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)
跳过的字符。
|
public BufferedReader(Reader in, int sz)
in
-读者
sz
输入缓冲区的大小
sz <= 0
IllegalArgumentException
public BufferedReader(Reader in)
in
-读者
public int read() throws IOException
read
方法重写,继承类
Reader
IOException
如果I/O错误发生
public int read(char[] cbuf, int off, int len) throws IOException
该方法实现了对
类相应的Reader
方法一般合同。作为一个额外的便利,它试图读尽可能多的字符,通过反复调用的底层流read
read
方法。这read
迭代直至下列条件之一为真:
-1
的read
方法,表示文件结束,或false
的ready
方法,表明进一步的输入请求块。read
返回
-1
表示文件结束之后这个方法返回
-1
。否则,此方法返回实际读取的字符数。
这个类的子类是鼓励的,但不是必需的,试图以相同的方式阅读尽可能多的字符。
通常此方法需要从这个流的字符缓冲区中的字符,从底层流填充它作为必要的。然而,如果缓冲区是空的,标记无效,并且请求的长度至少和缓冲区一样大,那么这个方法将从底层流直接读取到给定的数组中的字符。因此BufferedReader
s不会复制不必要的数据冗余。
read
方法重写,继承类
Reader
cbuf
-目的缓冲区
off
偏移,开始存储字符
len
-最大字符数读
IOException
如果I/O错误发生
public String readLine() throws IOException
IOException
如果I/O错误发生
Files.readAllLines(java.nio.file.Path, java.nio.charset.Charset)
public long skip(long n) throws IOException
skip
方法重写,继承类
Reader
n
-字符数跳过
IllegalArgumentException
-如果
n
是负的。
IOException
如果I/O错误发生
public boolean ready() throws IOException
ready
方法重写,继承类
Reader
IOException
如果I/O错误发生
public boolean markSupported()
markSupported
方法重写,继承类
Reader
public void mark(int readAheadLimit) throws IOException
mark
方法重写,继承类
Reader
readAheadLimit
的字符数限制,可同时仍保留了马克读。在读到这个极限或超越的字符后,重新设置流的尝试可能会失败。一个大于输入缓冲区大小的限制值将导致一个新的缓冲区被分配,其大小不小于极限。因此,大的价值观应该谨慎使用。
readAheadLimit < 0
IllegalArgumentException
IOException
如果I/O错误发生
public void reset() throws IOException
reset
方法重写,继承类
Reader
IOException
如果流没有被标记,或者如果该商标已失效
public void close() throws IOException
Reader
close
接口
Closeable
close
接口
AutoCloseable
close
方法重写,继承类
Reader
IOException
如果I/O错误发生
public Stream<String> lines()
Stream
,其中的元素是线从这
BufferedReader
读。是的
Stream
懒洋洋地填充,即读
terminal stream operation只发生在。
在终端流操作的执行过程中,不得操作读写器。否则,终端流操作的结果是不确定的。
执行后的终端流操作有没有保证,读者将在一个特定的位置,从中读取下一个字符或行。
如果一个IOException
被访问底层的BufferedReader
时,它被包裹在一个UncheckedIOException
将从引起阅读发生的Stream
方法引发。这个方法如果在BufferedReader,关闭调用返回一个流。在流需要阅读从体后关闭任何操作,将导致uncheckedioexception被。
BufferedReader
线
Stream<String>
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.