Java中的 BufferedInputStream read() 方法及示例
- Java中BufferedInputStream类的read()方法用于从输入流中读取数据的下一个字节。当对输入流调用此 read() 方法时,此 read() 方法一次读取输入流的一个字符。
句法:
public int read()
覆盖:
它覆盖了FilterInputStream类的 read() 方法。参数:此方法不接受任何参数。
返回值:此方法不返回任何值。
异常:如果输入流已通过调用其 close() 方法关闭或发生 I/O 错误,则此方法抛出IOException 。
下面的程序说明了 IO 包中 BufferedInputStream 类中的 read() 方法:
程序:假设文件“c:/demo.txt”存在。
// Java program to illustrate // BufferedInputStream read() method import java.io.*; public class GFG { public static void main(String[] args) throws Exception { // Create input stream 'demo.txt' // for reading containing // text "GEEKSFORGEEKS" FileInputStream inputStream = new FileInputStream("c:/demo.txt"); // Convert inputStream to // bufferedInputStream BufferedInputStream buffInputStr = new BufferedInputStream( inputStream); // Read until a single byte is available while (buffInputStr.available() > 0) { // Read the byte and // convert the integer to character char c = (char)buffInputStr.read(); // Print the characters System.out.println("Char : " + c); } } }
输入:输出: - Java中BufferedInputStream类的read(byte[ ] b, int off, int len)方法用于将字节输入流中的字节读取到指定的字节数组中,该数组从用户给定的偏移量开始。它基本上用于在保留数组中的字符后开始读取。
执行:
- 在该方法的实现中,read() 方法被一次又一次地调用。如果发现 IOException,则在调用此方法时,它会从调用 read(byte[ ] b, int off, int len) 方法返回异常。
- 如果进一步发现任何 IOException,则它会捕获异常并且应该结束输入文件。
- 到目前为止读取的字节存储在字节数组 b 中,并返回发生异常之前读取的字节数。
句法:
public int read(byte[] b, int off, int len)
覆盖:
它覆盖了FilterInputStream类的 read() 方法。参数:此方法接受三个参数。
- b – 它表示目标缓冲区。
- off – 它表示将开始存储字节的偏移量。
- len - 它表示要读取的最大字节数。
返回值:此方法不返回任何值。
异常:如果输入流已通过调用其 close() 方法关闭或发生 I/O 错误,则此方法抛出IOException 。
下面的程序说明了 IO 包中 BufferedInputStream 类中的 read(byte, int, int) 方法:
程序:假设文件“c:/demo.txt”存在。
// Java program to illustrate // BufferedInputStream // read(byte int int) method import java.io.*; public class GFG { public static void main(String[] args) { // Create input stream 'demo.txt' // for reading containing // text "GEEKSFORGEEKS" FileInputStream inputStream = new FileInputStream("c:/demo.txt"); // Convert inputStream to // bufferedInputStream BufferedInputStream buffInputStr = new BufferedInputStream( inputStream); // Read number of bytes available int rem_byte = buffInputStr.available(); // Byte array is declared byte[] barr = new byte[rem_byte]; // Read byte into barr, // starts at offset 1, // 5 bytes to read buffInputStr.read(barr, 1, 5); // For each byte in barr for (byte b : barr) { if (b == (byte)0) b = (byte)'-'; System.out.print((char)b); } } }
输入:输出:
参考:
1. https://docs.oracle.com/javase/10/docs/api/java Java()
2. https://docs.oracle.com/javase/10/docs/api/java Java, int, int)