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类。管道意味着两个正在运行的线程之间的链接,这个类是一个管道字符输出流。