Java.io.BufferedInputStream.read() 方法
描述
java.io.BufferedInputStream.read(byte[] b, int off, int len) 方法从字节输入流中读取 len 个字节到一个字节数组中,从 给定的偏移量。 此方法重复调用底层流的 read() 方法。
迭代读取一直持续到满足以下条件之一 −
len 个字节已读取。
返回 -1,表示文件结束。
如果 BufferedInputStream 的 available() 方法返回 0
声明
以下是 java.io.BufferedInputStream.read(byte[] b, int off, int len) 方法的声明。
public int read(byte[] b, int off, int len)
参数
b − 要填充的字节数组。
off − 从偏移量开始存储。
len − 要读取的字节数。
返回值
此方法不返回任何值。
异常
IOException − 如果发生 I/O 错误。
示例
下面的例子展示了 java.io.BufferedInputStream.read(byte[] b, int off, int len) 方法的使用。
package com.tutorialspoint; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; public class BufferedInputStreamDemo { public static void main(String[] args) throws Exception { InputStream inStream = null; BufferedInputStream bis = null; try { // open input stream test.txt for reading purpose. inStream = new FileInputStream("c:/test.txt"); // input stream is converted to buffered input stream bis = new BufferedInputStream(inStream); // read number of bytes available int numByte = bis.available(); // byte array declared byte[] buf = new byte[numByte]; // read byte into buf , starts at offset 2, 3 bytes to read bis.read(buf, 2, 3); // for each byte in buf for (byte b : buf) { System.out.println((char)b+": " + b); } } catch(Exception e) { e.printStackTrace(); } finally { // releases any system resources associated with the stream if(inStream!=null) inStream.close(); if(bis!=null) bis.close(); } } }
假设我们有一个文本文件c:/test.txt,其内容如下。 该文件将用作我们示例程序的输入 −
ABCDE
让我们编译并运行上面的程序,这将产生下面的结果 −
: 0 : 0 A: 65 B: 66 C: 67