从 character-input 流读取文本,缓冲字符,以便高效读取字符、数组和行。可以指定缓冲区大小,也可以使用默认大小。默认值足够大,足以满足大多数用途。一般来说,读取器发出的每个读取请求都会导致对底层字符或字节流发出相应的读取请求。因此,建议将 BufferedReader 包装在 read() 操作可能成本高昂的任何 Reader 周围,例如 FileReaders 和 InputStreamReaders。使用 DataInputStreams 进行文本输入的程序可以通过将每个 DataInputStream 替换为适当的 BufferedReader 来本地化。
BufferedReader 类的构造函数
构造函数 | 执行的操作 |
---|---|
BufferedReader(Reader in) | 创建使用 default-sized 输入缓冲区的缓冲 character-input 流 |
BufferedReader(Reader in, int sz) | 创建使用指定大小的输入缓冲区的缓冲 character-input 流。 |
Methods of BufferedReader Class
方法名称 | 行动 |
---|---|
BufferedReader close() | 关闭流并释放与其关联的所有系统资源。关闭流后,进一步的 read()、ready()、mark()、reset() 或 skip() 调用将引发 IOException。关闭之前关闭的流没有任何效果。 |
BufferedReader mark() | 标记流中的当前位置。对 reset() 的后续调用将尝试将流重新定位到该点。 |
BufferedReader markSupported() | 告知此流是否支持 mark() 操作(它确实支持)。 |
BufferedReader read() | 读取单个字符。 |
读取(char[] cbuf,int 关闭,int len) | 将字符读入数组的一部分。该方法实现了 Reader 类相应的 read 方法的通用契约。作为一个额外的便利,它尝试通过重复调用底层流的 read 方法来读取尽可能多的字符。 |
BufferedReader readLine() | 读取一行文本。一行被视为以换行符 (‘\n’)、回车符 (‘\r’) 或回车符后紧跟换行符之一终止。 |
BufferedReader ready() | 告知该流是否已准备好读取。 |
BufferedReader reset() | 将流重置为最新标记。 |
BufferedReader skip(long) | 跳过字符。 |
实现:文件内内容如下:
This is first line this is second line
示例
Java
// Java Program to Illustrate BufferedReader Class
// Via Its Methods
// Importing required classes
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
// Class
class GFG {
// Main driver method
public static void main(String[] args)
throws IOException
{
// Creating object of FileReader and BufferedReader
// class
FileReader fr = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fr);
char c[] = new char[20];
// Illustrating markSupported() method
if (br.markSupported()) {
// Print statement
System.out.println(
"mark() method is supported");
// Illustrating mark method
br.mark(100);
}
// File Contents is as follows:
// This is first line
// this is second line
// Skipping 8 characters
br.skip(8);
// Illustrating ready() method
if (br.ready()) {
// Illustrating readLine() method
System.out.println(br.readLine());
// Illustrating read(char c[],int off,int len)
br.read(c);
for (int i = 0; i < 20; i++) {
System.out.print(c[i]);
}
System.out.println();
// Illustrating reset() method
br.reset();
for (int i = 0; i < 8; i++) {
// Illustrating read() method
System.out.print((char)br.read());
}
}
}
}
输出:
mark() method is supported first line this is second line This is
相关用法
- Java Java.io.BufferedReader.Close()用法及代码示例
- Java Java.io.BufferedReader.mark()用法及代码示例
- Java Java.io.BufferedReader.markSupported()用法及代码示例
- Java Java.io.BufferedReader.read()用法及代码示例
- Java Java.io.BufferedReader.readline()用法及代码示例
- Java Java.io.BufferedReader.ready()用法及代码示例
- Java Java.io.BufferedReader.reset()用法及代码示例
- Java Java.io.BufferedReader.skip()用法及代码示例
- Java Java.io.BufferedInputStream.available()用法及代码示例
- Java Java.io.BufferedInputStream.close()用法及代码示例
- Java Java.io.BufferedInputStream.read()用法及代码示例
- Java Java.io.BufferedInputStream.reset()用法及代码示例
- Java Java.io.BufferedInputStream.skip()用法及代码示例
- Java Java.io.BufferedOutputStream.flush()用法及代码示例
- Java Java.io.BufferedOutputStream.Write()用法及代码示例
- Java Java.io.BufferedWriter.close()用法及代码示例
- Java Java.io.BufferedWriter.flush()用法及代码示例
- Java Java.io.BufferedWriter.newLine()用法及代码示例
- Java Java.io.BufferedWriter.write()用法及代码示例
- Java Java.io.BufferedOutputStream用法及代码示例
- Java Java.io.BufferedInputStream用法及代码示例
- Java Java.io.ByteArrayInputStream.available()用法及代码示例
- Java Java.io.ByteArrayInputStream.close()用法及代码示例
- Java Java.io.ByteArrayInputStream.mark()用法及代码示例
- Java Java.io.ByteArrayInputStream.read()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.BufferedReader Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。