Java SequenceInputStream available()方法与示例
SequenceInputStream类available()方法
available()方法在java.io包中可用。
available()方法用于返回可以从当前基础输入流读取的可用字节数的近似值,而不会因当前基础SequenceInputStream的方法的下一次调用而阻塞。
available()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
available()方法在返回可用字节时可能会引发异常。
IOException:在执行过程中遇到任何输入/输出错误时,可能引发此异常。
语法:
public int available();
参数:
它不接受任何参数。
返回值:
方法的返回类型为int,它返回可以从当前基础输入流中读取而不会阻塞的剩余字节数。当通过其close()方法关闭此流时,它可能返回0。
示例
//Java程序演示示例
的int//available()的方法
//SequenceInputStream-
import java.io.*;
public class AvailableOfSIS {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Programming..";
//创建两个字节的数组
byte[] b_arr1 = str1.getBytes();
byte[] b_arr2 = str2.getBytes();
//实例化两个ByteArrayInputStream-
ByteArrayInputStream bais_1 = new ByteArrayInputStream(b_arr1);
ByteArrayInputStream bais_2 = new ByteArrayInputStream(b_arr2);
//实例化SequenceInputStream-
SequenceInputStream se_stm = new SequenceInputStream(bais_1, bais_2);
try {
//通过使用available()方法是
//返回可用字节数
//在bais1中读取
int avail_bytes = se_stm.available();
System.out.println("se_stm.available(): " + avail_bytes);
//循环读取可用的输入
for (int i = 0; i < 15; i++) {
//通过使用read()方法是读取整数和
//将其转换为char-
char ch = (char) se_stm.read();
System.out.print("se_stm.read(): " + ch);
System.out.println();
}
//通过使用close()方法是
//关闭所有流
bais_1.close();
bais_1.close();
se_stm.close();
System.out.println("Streams Shutdown.....");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}输出结果
se_stm.available(): 4 se_stm.read(): J se_stm.read(): a se_stm.read(): v se_stm.read(): a se_stm.read(): P se_stm.read(): r se_stm.read(): o se_stm.read(): g se_stm.read(): r se_stm.read(): a se_stm.read(): m se_stm.read(): m se_stm.read(): i se_stm.read(): n se_stm.read(): g Streams Shutdown.....