Java FilterWriter
原文:https://www.studytonight.com/java-file-io/java-filterwriter
在本教程中,我们将学习 Java 中的FilterWriter
类。FilterWriter 类是一个抽象类,这意味着我们不能实例化这个类。这个类的主要目的是编写过滤后的字符流。这个类提供了各种方法,将所有请求传递给包含的流。FilterWriter 方法的子类应该随时随地覆盖它的方法,以提供更多的功能。
语法:
FilterWriter
类是抽象类,这个类扩展了Writer
类。
public abstract class FilterWriter extends Writer
FilterWriter 构造器
FilterWriter
类的所有构造器如下表所示。
构造器 | 描述 |
---|---|
protected FilterWriter(Writer out) |
它创建一个InputStream 类对象。 |
FilterWriter
方法
下表列出了 FilterWriter 类的所有方法。
| 方法 | 描述 |
| void close()
| 此方法关闭流,首先刷新它。 |
| void flush()
| 此方法刷新流。 |
| void write(char[] cbuf, int off, int len)
| 此方法写入字符数组的一部分。 |
| void write(int c)
| 这个方法只写一个字符。 |
| void write(String str, int off, int len)
| 此方法写入字符串的一部分。 |
FilterWriter 示例
在本例中,我们使用了 FilterWriter 类的内置 write()函数,而没有通过覆盖它来添加任何额外的功能。首先我们创建了一个 FileWriter 的对象,然后我们使用 FilterWriter 在文件中写入数据,因为我们没有添加任何自定义方法,所以它会正常地在文件中写入数据。我们可以检查 output.txt 文件中的数据,它与我们提供的相同。
package studytonight;
import java.io.FileWriter;
import java.io.FilterWriter;
public class StudyTonight
{
public static void main(String args[])
{
try
{
FileWriter fileWriter = new FileWriter("E:\\studytonight\\output.txt");
FilterWriter filterWriter = new FilterWriter(fileWriter) {};
filterWriter.write("Hello Studytonight");
filterWriter.close();
System.out.println("Data is written to the file successfully...");
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
数据成功写入文件...
输出. txt
Hello Studytonight
在上面的程序中,我们按原样实现了 FilterWriter 类的 write()方法,现在是时候通过定制来实现了。
FilterWriter 示例
在下面的例子中,我们实现了一个自定义的write()
方法,而不是使用内置的方法,为此我们创建了一个单独的类,该类扩展了一个FilterWriter
,然后我们覆盖了 write 方法,它将以大写形式编写文本,而不考虑它的实际大小写。这里我们提供了文本“你好今晚研究”,但它将写“你好今晚研究”,我们可以从文件中的输出数据来验证它。
package studytonight;
import java.io.FileWriter;
import java.io.FilterWriter;
import java.io.IOException;
import java.io.Writer;
class MyFilter extends FilterWriter
{
MyFilter(Writer out)
{
super(out);
}
public void write(String str) throws IOException
{
super.write(str.toUpperCase());
}
}
public class StudyTonight
{
public static void main(String args[])
{
try
{
FileWriter fileWriter = new FileWriter("E:\\studytonight\\output.txt");
MyFilter customFilterWriter = new MyFilter(fileWriter);
customFilterWriter.write("Hello Studytonight");
customFilterWriter.close();
System.out.println("Data is written to the file successfully...");
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
数据成功写入文件...
输出. txt
HELLO STUDYTONIGHT
结论
在本教程中,我们学习了FilterWriter
类及其方法。FilterWriter 类是一个抽象类,这意味着我们不能实例化这个类。这个类的主要目的是编写过滤后的字符流。