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.....