Java FileInputStream.available()方法

原文:https://www.studytonight.com/java-file-io/java-fileinputstream-available-method

在本教程中,我们将学习 JavaFileInputStream类的available()方法。此方法用于返回要从当前输入流中读取的剩余字节数,而不会被此FileInputStream的此方法的下一次调用阻塞。下一个方法调用也可以是另一个线程。这是一种非静态方法,在 java.io 包中提供。

句法

这是此方法的语法声明。它不接受任何参数,并返回该FileInputStream可以读取的剩余字节的大致数量。

public int available()

示例 1:检查 Java 流中的可用字节

在本例中,我们使用 available 方法检查流中可供读取的字节数,该方法返回的数字是 18,这表明流中可供读取的剩余字节总数是 18。

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        FileInputStream inputStream  = new FileInputStream("E:\\studytonight\\file.txt"); 

        DataInputStream dataInputStream = new DataInputStream(inputStream); 

        int count = inputStream.available(); 

        System.out.println("Total bytes available: "+count);          
    }  
}

可用字节总数:18

示例 2:检查 Java 流中的可用字节

在本例中,我们使用 available 方法检查流中可供读取的字节数,该方法返回的数字为 5,这表明流中剩余可供读取的字节总数为 15。

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        byte[] byte_arr = { 10, 20, 30, 40, 50 }; 

        ByteArrayInputStream byteArrayInputStr = new ByteArrayInputStream(byte_arr); 

        DataInputStream dataInputStr = new DataInputStream(byteArrayInputStr); 

        int count = dataInputStr.available(); 

        System.out.println("Total bytes available: "+count);          
    }  
}

可用字节总数:5

结论:

在本教程中,我们学习了 JavaFileInputStream类的available()方法,该方法返回要从当前输入流中读取的估计字节数,而不会被该FileInputStream的该方法的下一次调用阻塞。这个方法只能用类对象访问,如果我们试图用类名访问这个方法,那么我们会得到一个错误。