Java InputStreamReader.ready()方法

原文:https://www.studytonight.com/java-file-io/java-inputstreamreader-ready-method

在本教程中,我们将学习 JavaInputStreamReader 类的ready()方法。此方法验证当前流是否准备好由InputStreamReader读取。如果可以从基础字节流中读取字节,或者如果输入缓冲区不为空,则InputStreamReader准备就绪。

句法

下面是这个方法的语法声明。不接受任何参数。如果流准备好被读取,则返回true,否则返回false

public boolean ready()

示例 1:InputStreamReader的准备方法

在这个例子中,我们将说明如何检查当前流是否准备好被InputStreamReader读取。如果可以从基础字节流中读取字节,或者如果输入缓冲区不为空,则InputStreamReader准备就绪。

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class StudyTonight 
{
    public static void main(String args[])
    {
        try 
        {
            InputStream inputStream = new FileInputStream("E://studytonight//output.txt");
            InputStreamReader    inputStreamReader = new InputStreamReader(inputStream);

            boolean status = inputStreamReader.ready();
            System.out.println("inputStreamReader.ready(): " + status);
        }
        catch (Exception e)
        {
            System.out.println("Error: "+e.toString());
        }  
    }
}

inputstreamreader . ready():true

输出. txt

Hello Studytonight

示例 1:InputStreamReader的准备方法

在下面的示例中,我们使用 read 方法从文件中读取数据,虽然数据也打印了 ready()方法返回的值,但每次该方法都将返回真值,因为流已经准备好读取下一个值,除非所有字符读取完成。之后,它将返回假值,因为读取已经完成。

import java.io.FileInputStream;
import java.io.InputStreamReader;
public class StudyTonight 
{
    public static void main(String args[])
    {
        boolean bool = false;
        int i;
        char c;

        try
        {
            FileInputStream fileInputStream = new FileInputStream("E://studytonight//output.txt");
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);

            while((i = inputStreamReader.read())!=-1) 
            {
                c = (char)i;

                System.out.println("Character read: "+c);

                bool = inputStreamReader.ready();

                System.out.println("Ready to read: "+bool);
            }

        } 
        catch (Exception e)
        {
            System.out.println("Error: "+e.toString());
        }  
    }
}

人物读:H 准备读:真 人物读:e 准备读:真 人物读:l 准备读:真 人物读:l 准备读:真 人物读:o 准备读:真 人物读: 准备读:真 人物读:S 准备读:真 人物读:t 准备读:真 人物读:d 准备读:真 人物读:y 准备读:真 人物读:t 准备读:真 人物读:o 准备读:真 人物读:n 准备读:真 人物读:i 准备读:真 人物读:g 准备读:真 人物读:h

输出. txt

Hello Studytonight

结论

在本教程中,我们学习了 JavaInputStreamReader类的ready()方法,该方法告知当前流是否准备好被InputStreamReader读取。它返回true,如果流准备好了,否则,它返回false