Java FilterReader.read()方法

原文:https://www.studytonight.com/java-file-io/filterreader-read-method-in-java

在本教程中,我们将在 Java 中学习 FilterReader 类的read() 方法。此方法的任务是从给定的FilterReader中读取单个字符。这个read()方法一次从流中读取一个字符,并将其作为整数值返回。

句法

这是 read()方法的语法声明,该方法不接收任何参数,但返回整数格式的 ASCII 值。

public int read()

示例 1:过滤器读取器的读取方法

在下面的例子中,我们实现了FilterReader类的 read()方法来读取文件中的数据。这里,我们使用的方法没有修改,所以我们将得到与文本文件中相同的结果。在下一个示例中,我们将看到如何定制 read 方法,以便按照我们的要求以特定的格式读取数据。

package studytonight;
import java.io.FileReader;
import java.io.FilterReader;
import java.io.Reader;
public class StudyTonight 
{
    public static void main(String args[])
    {
        try
        {
            Reader reader = new FileReader("E:\\studytonight\\output.txt");  
            FilterReader filterReader = new FilterReader(reader) {};  
            int i;  
            while ((i = filterReader.read()) != -1) {  
                System.out.print((char) i);  
            }  
            filterReader.close();  
            reader.close();  
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    }
}

你好,今晚学习

输出. txt

Hello Studytonight

示例 2:过滤器读取器的读取方法

在本例中,我们将看到如何通过覆盖类中的方法来将修改应用于 FilterReader 类的方法。这里我们将覆盖 read 方法,每当出现`' '(空格)时,它将返回'*'` (星号)符号。为此,我们首先声明了 MyReader 类,并继承了 FilterReader 类,然后我们覆盖了上面提到的逻辑的读取方法。在输出中,我们可以看到每当出现空格时,它都会返回星号。

package studytonight;
import java.io.FileReader;
import java.io.FilterReader;
import java.io.IOException;
import java.io.Reader;
class MyReader extends FilterReader
{
    protected MyReader(Reader in) 
    {
        super(in);
    }

    public int read() throws IOException
    {  
        int x = super.read();  
        if ((char) x == ' ')  
            return ('*');  
        else  
            return x;  
    }      
}

public class StudyTonight 
{
    public static void main(String args[])
    {
        try
        {
            Reader reader = new FileReader("E:\\studytonight\\output.txt");  
            MyReader filterReader = new MyReader(reader);  
            int i;  
            while ((i = filterReader.read()) != -1) {  
                System.out.print((char) i);  
            }  
            filterReader.close();  
            reader.close();  
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    }
}

你好,今晚学习

输出. txt

Hello Studytonight

结论

在本教程中,我们学习了 Java 中 FilterReader 类的 read()方法。此方法的任务是从给定的FilterReader中读取单个字符。这个read()方法一次从流中读取一个字符,并将其作为整数值返回。