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()
方法一次从流中读取一个字符,并将其作为整数值返回。