📌  相关文章
📜  Java BufferedInputStream available() 方法与示例

📅  最后修改于: 2022-05-13 01:55:45.802000             🧑  作者: Mango

Java BufferedInputStream available() 方法与示例

BufferedInputStream类为其他输入流添加了新属性,一种缓冲输入的能力。创建 BufferedInputStream 时,会创建一个内部缓冲区数组。

BufferedInputStream类的available()方法用于了解可从内部缓冲区数组读取的字节数,直到出现没有数据可读取的情况。方法read()的调用将阻塞程序的执行流程并等待数据可用。

句法:

public int available()

参数:此方法不带任何参数。

返回值:该方法用于返回从该输入流中没有任何阻塞的剩余待读取字节的总和。

异常:如果发生与输入输出相关的错误或使用 close 方法关闭输入流时,该方法将抛出IOException

示例 1:下面的程序说明了 available() 方法的使用,假设文件“d:/demo.txt”存在。

// Java code to illustrate available() method
import java.io.*;
class Testing {
    public static void main(String[] args)
    throws IOException
    {
   
        // create input stream 'demo.txt'
        // for reading containing text "GEEKS"
        FileInputStream inputStream = 
        new FileInputStream("d:/demo.txt");
   
        // convert inputStream to 
        // bufferedInputStream
        BufferedInputStream buffInputStr = 
        new BufferedInputStream(inputStream);
   
        // get the number of bytes available
        // to read using available() method
        Integer remBytes = 
        buffInputStr.available();
   
        // Print result
        System.out.println(
            "Remaining bytes =" + remBytes);
    }
}

输出:

5

示例 2:下面的程序说明了 available() 方法的使用,假设文件“d:/demo.txt”存在。

// Java code to illustrate available() method
import java.io.*;
class Testing {
    public static void main(String[] args)
    throws IOException
    {
   
        // create input stream demo.txt
        // for reading containing text
        // "GEEKSFORGEEKS"
        FileInputStream inputStream =
        new FileInputStream("d:/demo.txt");
   
        // convert inputStream to 
        // BufferedInputStream
        BufferedInputStream buffInputStr =
        new BufferedInputStream(inputStream);
   
        // get the number of bytes available to
        // read using available() method
        Integer remBytes = 
        buffInputStr.available();
   
        // Print result
        System.out.println(
            "Remaining bytes =" + remBytes);
    }
}

输出:

13