📜  Java中的 FileInputStream available() 方法及示例

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

Java中的 FileInputStream available() 方法及示例

FileInputStream 类的available()方法用于返回可以从输入流中读取而不会阻塞的估计剩余字节数。此方法返回要从文件中读取的剩余字节数。当一个文件被完全读取时,这个函数返回零。

句法:

FileInputStream available() 

返回值:该方法返回并估计从该输入流读取的剩余字节数而不阻塞。

异常:该方法会产生IOException或FileNotFoundException等异常。这些异常如下所述。

  • IOException –如果文件输入流已通过调用 close 关闭或发生任何 I/O 错误。
  • FileNotFoundException –如果该目录不可用,那么我们将得到 FileNotFoundException。

如何调用 available() 方法?

第 1 步:将文件附加到 FileInputStream,因为这将使我们能够从文件中读取数据,如下所示:

FileInputStream fileInputStream = new FileInputStream(“file.txt”);

第 2 步:现在,要从文件中读取有多少数据可供读取的数据,我们应该使用 FileInputStream 对象调用一个可用的方法,如下所示;

int ch = fileInputStream.available(); 

步骤 3(a):当没有更多数据可供进一步读取时,available() 方法返回 0;

步骤 3(b):然后,我们应该将监视器附加到输出流。为了显示数据,我们可以使用 System.out.print。

System.out.print(ch);

执行

原始文件内容:file.txt

GeeksforGeeks

该程序将读取一个文件并返回每次读取的字符数。

Java
// Java program to demonstrate the working
// of the FileInputStream available() method
 
import java.io.File;
import java.io.FileInputStream;
 
public class abc {
 
    public static void main(String[] args)
    {
 
        // Creating file object and specifying path
        File file = new File("file.txt");
 
        try {
            FileInputStream input = new FileInputStream(file);
            int character;
            // read character by character by default
            // read() function return int between 0 and 255.
 
            while ((character = input.read()) != -1) {
                int ch = input.available();
                System.out.print("Currently Reading:"
                                 + (char)character);
                System.out.print(" Remaining character: "
                                 + ch);
                System.out.println();
            }
 
            input.close();
        }
        catch (Exception e) {
 
            e.printStackTrace();
        }
    }
}


输出

Currently Reading:G Remaining character: 12
Currently Reading:e Remaining character: 11
Currently Reading:e Remaining character: 10
Currently Reading:k Remaining character: 9
Currently Reading:s Remaining character: 8
Currently Reading:f Remaining character: 7
Currently Reading:o Remaining character: 6
Currently Reading:r Remaining character: 5
Currently Reading:G Remaining character: 4
Currently Reading:e Remaining character: 3
Currently Reading:e Remaining character: 2
Currently Reading:k Remaining character: 1
Currently Reading:s Remaining character: 0