java.io.LineNumberInputStream.read(byte[] b, int off, int len)方法实例
java.io.LineNumberInputStream.read(byte[] b, int off, int len) 从这个输入流中的读取多达len个字节到字节数组。此方法一直阻塞直到输入可用。
声明
以下是java.io.LineNumberInputStream.read(byte[] b, int off, int len) 方法的声明:
public int read(byte[] b, int off, int len)
参数
-
b -- 到其中的数据被读出缓冲器中。
-
off -- 该数据的起始偏移量。
-
len -- 读出的最大字节数。
返回值
该方法返回读入缓冲区的总字节数,否则如果没有更多的数据则返回-1。
异常
-
IOException -- 如果发生I/O错误
例子
下面的例子显示java.io.LineNumberInputStream.read(byte[] b, int off, int len)方法的用法。
package com.yiibai; import java.io.FileInputStream; import java.io.IOException; import java.io.LineNumberInputStream; public class LineNumberInputStreamDemo { public static void main(String[] args) throws IOException { LineNumberInputStream lnis = null; FileInputStream fis =null; byte[] buf = new byte[5]; int i; char c; try{ // create new input stream fis = new FileInputStream("C:/test.txt"); lnis = new LineNumberInputStream(fis); // read bytes to the buffer i=lnis.read(buf, 2, 3); System.out.println("The number of char read: "+i); // for each byte in buffer for(byte b:buf) { // if byte is zero if(b==0) c='-'; else c=(char)b; // print char System.out.print(c); } }catch(Exception e){ // if any error occurs e.printStackTrace(); }finally{ // closes the stream and releases any system resources if(fis!=null) fis.close(); if(lnis!=null) lnis.close(); } } }
假设我们有一个文本文件c:/ test.txt,它具有以下内容。该文件将被用作输入到我们的示例程序:
ABCDE
让我们编译和运行上面的程序,这将产生以下结果:
The number of char read: 3 --ABC