Java Java.io.InputStream.read() 方法
-
描述
java.io.InputStream.read(byte[] b, int off, int len)方法将输入流中最多len个数据字节读取为一个字节数组。如果参数len为零,则不读取任何字节,并返回0;否则,返回0。否则,尝试读取至少一个字节。如果流在文件的末尾,则返回的值为-1。 -
声明
以下是java.io.InputStream.read(byte[] b, int off, int len)方法的声明-public int read(byte[] b, int off, int len)
-
参数
-
b目标字节数组。
-
off数组b中写入数据的起始偏移量。
-
len要读取的字节数。
-
-
返回值
该方法返回读入缓冲区的字节总数;如果由于到达流的末尾而没有更多数据,则返回-1。 -
异常
-
IOException如果发生I / O错误。
-
NullPointerException如果b为null。
-
IndexOutOfBoundsException如果off为负,len为负,或者len大于b.length-off。
-
-
例子
下面的示例显示java.io.InputStream.read(byte [] b,int off,int len)方法的用法。package com.jc2182; import java.io.FileInputStream; import java.io.InputStream; public class InputStreamDemo { public static void main(String[] args) throws Exception { InputStream is = null; byte[] buffer = new byte[5]; char c; try { // new input stream created is = new FileInputStream("C://test.txt"); System.out.println("Characters printed:"); // read stream data into buffer is.read(buffer, 2, 3); // for each byte in the buffer for(byte b:buffer) { // convert byte to character if(b == 0) // if b is empty c = '-'; else // if b is read c = (char)b; // prints character System.out.print(c); } } catch(Exception e) { // if any I/O error occurs e.printStackTrace(); } finally { // releases system resources associated with this stream if(is!=null) is.close(); } } }
假设我们有一个文本文件c:/test.txt ,其内容如下。该文件将用作示例程序的输入-ABCDE
让我们编译并运行以上程序,这将产生以下结果-Characters printed: --ABC