📜  Java中的 BufferedReader read() 方法及示例

📅  最后修改于: 2022-05-13 01:55:04.279000             🧑  作者: Mango

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)