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 类是一个抽象类,这意味着我们不能实例化这个类。这个类的主要目的是编写过滤后的字符流。