Java PipedWriter

原文:https://www.studytonight.com/java-file-io/java-pipedwriter-class

在本教程中,我们将学习 Java 中的PipedWriter类。管道意味着两个正在运行的线程之间的链接,这个类是一个管道字符输出流。如果向连接的管道输出流提供数据字节的线程不再活动,则管道被称为断开。

enlightened :我们把PipedWriter连接到一个PipedReader上,一般PipedWriterPipedReade是用不同的螺纹。

句法

这是PipedWriter类的语法声明,我们可以看到它在扩展Writer 类。

public class PipedWriter extends Writer

构造器

PipedWriter 方法构造器的所有变体如下表所示:

构造器 描述
PipedWriter() 它创建了一个尚未连接到管道读取器的管道编写器。
PipedWriter(PipedReader snk) 它创建一个连接到指定管道读取器的管道编写器。

方法

PipedWriter类的所有方法如下表所示:

方法 描述
void close() 此方法关闭此管道输出流,并释放与此流关联的任何系统资源。
void connect(PipedReader snk) 此方法将PipedWriter连接到接收器。
void flush() 此方法刷新此输出流,并强制写出所有缓冲的输出字符。
void write(char[] cbuf, int off, int len) 该方法将从偏移处开始的指定字符数组中的len 字符写入该管道输出流。
void write(int c) 此方法将指定的字符写入管道输出流。

Java PipedWriter示例

在这个例子中,我们实现了 PipedWriter 类的write()方法来写数据。首先我们创建了PipedWriter 类和PipedReader 类的对象,然后使用 connect()方法连接了这两个方法。现在我们将字符写到PipedWriter 中,并再次使用PipedReader进行阅读。

package studytonight;
import java.io.PipedReader;
import java.io.PipedWriter;
public class StudyTonight 
{
    public static void main(String args[])
    {
        try
        {
            PipedReader reader = new PipedReader(); 
            PipedWriter writer = new PipedWriter(); 
            reader.connect(writer); 

            writer.write(72); 
            System.out.println((char)reader.read()); 
            writer.write(69); 
            System.out.println((char)reader.read()); 
            writer.write(76); 
            System.out.println( (char)reader.read());   
            writer.write(76); 
            System.out.println( (char)reader.read());   
            writer.write(79); 
            System.out.println( (char)reader.read());   
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    }
}

H E L L O

Java PipedWriter示例

在本例中,write()方法将指定的字符写入PipedWriter。此外,我们还有另一个重载方法write(char[] arr, int offset, int maxlen),在这个方法中,arr 是源数组,offset 是开始写入的索引,maxlen 是要写入的字符串的长度。

package studytonight;
import java.io.PipedReader;
import java.io.PipedWriter;
public class StudyTonight 
{
    public static void main(String args[])
    {
        try
        {
            PipedReader reader = new PipedReader(); 
            PipedWriter writer = new PipedWriter(); 
            reader.connect(writer); 
            char[] arr = {'H', 'E', 'L', 'L', 'O'}; 
            writer.write(arr, 0, 5); 
            while(true) 
            { 
                System.out.print((char) reader.read());           
            } 
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    }
}

你好

结论:

在本教程中,我们学习了 Java 中的PipedWriter类。管道意味着两个正在运行的线程之间的链接,这个类是一个管道字符输出流。