Java PipedWriter
类
原文:https://www.studytonight.com/java-file-io/java-pipedwriter-class
在本教程中,我们将学习 Java 中的PipedWriter
类。管道意味着两个正在运行的线程之间的链接,这个类是一个管道字符输出流。如果向连接的管道输出流提供数据字节的线程不再活动,则管道被称为断开。
注:我们把
PipedWriter
连接到一个PipedReader
上,一般PipedWriter
和PipedReade
是用不同的螺纹。
句法
这是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
类。管道意味着两个正在运行的线程之间的链接,这个类是一个管道字符输出流。