Java中的 BufferedReader read() 方法及示例
Java中BufferedReader类的read()方法有两种:
1. Java中BufferedReader类的read()方法用于从给定的缓冲阅读器中读取单个字符。此 read() 方法一次从缓冲流中读取一个字符并将其作为整数值返回。
句法:
public int read()
throws IOException
覆盖:它覆盖了Reader类的 read() 方法。
参数:此方法不接受任何参数。
返回值:该方法以整数形式返回该方法读取的字符。如果缓冲流已经结束并且没有要读取的字符,则此方法返回 -1。
异常:如果发生 I/O 错误,此方法将引发IOException 。
下面的程序说明了 IO 包中 BufferedReader 类中的 read() 方法:
程序:假设文件“c:/demo.txt”存在。
// Java program to illustrate
// BufferedReader read() method
import java.io.*;
public class GFG {
public static void main(String[] args)
{
// Read the stream 'demo.txt'
// containing text "GEEKSFORGEEKS"
FileReader fileReader
= new FileReader(
"c:/demo.txt");
// Convert fileReader to
// bufferedReader
BufferedReader buffReader
= new BufferedReader(
fileReader);
while (buffReader.ready()) {
// Read and print characters one by one
// by converting into character
System.out.println("Char :"
+ (char)buffReader.read());
}
}
}
2、 Java中BufferedReader类的read(char[ ], int, int)方法用于读取特定数组的一部分中的字符。
一般合同:
这个 read() 方法的一般约定如下:
- 它通过一次又一次地调用主流的 read() 方法来读取最大可能的字符。
- 它一直持续到读取指定数量的字符或直到文件结束或直到 ready() 方法返回 false。
指定者:该方法由Reader类的 read() 方法指定。
句法:
public int read(char[] cbuf,
int offset,
int length)
throws IOException
参数:此方法接受三个参数:
- cbuf - 它代表目标缓冲区。
- 偏移量——它表示存储字符的起点。
- 长度- 它表示要读取的最大字符数。
返回值:该方法返回该方法读取的字符数。如果缓冲流已经结束并且没有要读取的字符,则此方法返回 -1。
异常:如果发生 I/O 错误,此方法将引发IOException 。
下面的程序说明了 IO 包中 BufferedReader 类中的 read(char, int, int) 方法:
程序:假设文件“c:/demo.txt”存在。
// Java program to illustrate
// BufferedReader read(char, int, int) method
import java.io.*;
public class GFG {
public static void main(String[] args)
{
// Read the stream 'demo.txt'
// containing text "GEEKSFORGEEKS"
FileReader fileReader
= new FileReader(
"c:/demo.txt");
// Convert fileReader to
// bufferedReader
BufferedReader buffReader
= new BufferedReader(
fileReader);
// Create a character array
char[] cbuf = new char[13];
// Initialize and declare
// offset and length
int offset = 2;
int length = 5;
// Calling read() method
// on buffer reader
System.out.println(
"Total number of characters read: "
+ buffReader.read(
cbuf, offset, length));
// For each char in cbuf
for (char c : cbuf) {
if (c == (char)0)
c = '-';
System.out.print((char)c);
}
}
}
参考:
https://docs.oracle.com/javase/10/docs/api/java Java()
https://docs.oracle.com/javase/10/docs/api/java Java, int, int)