Java PipedReader
类
原文:https://www.studytonight.com/java-file-io/java-pipedreader-class
在本教程中,我们将学习 Java 中的PipedReader
类。PipedReader
类用于读取管道的数据,该数据是字符流的格式。在实现PipedReader
时,我们必须注意这必须连接到不同线程使用的PipedWriter
和一般的PipedReader
和PipedWriter
,而不是在同一线程上运行。
注意:清管器必须连接到
PipedWriter
上。
句法
这是PipedReader
类的语法声明,我们可以看到它在扩展Reader
类。
public class PipedReader extends Reader
PipedReader
类的构造器
下表给出了构造器的所有变体。
|
构造器
|
描述
|
| --- | --- |
| PipedReader(int pipeSize)
| 它创建一个PipedReader
使其尚未连接,并使用指定的管道大小作为管道的缓冲区。 |
| PipedReader(PipedWriter src)
| 它创建了一个PipedReader
,以便连接到PipedWriter
src。 |
| PipedReader(PipedWriter src, int pipeSize)
| 它创建一个PipedReader
,以便连接到PipedWriter
src,并使用管道缓冲区的指定管道大小。 |
| PipedReader()
| 它创建了一个PipedReader
,所以它还没有被连接。 |
管道恐惧器类的方法
下面给出的方法如下。
方法 | 描述 |
---|---|
void close() |
此方法关闭此管道流,并释放与该流关联的任何系统资源。 |
void connect(PipedWriter src) |
此方法使管道读取器连接到PipedWriter src。 |
int read() |
这个方法从这个管道流中读取数据的下一个字符。 |
int read(char[] cbuf, int off, int len) |
这个方法从这个管道流中读取多达len 个字符的数据到一个字符数组中。 |
boolean ready() |
这个方法告诉这个流是否准备好被读取。 |
示例:PipedReader
读取()方法
在这个例子中,我们将从PipedReeader
类中实现read()
方法。首先,我们为类PipedReader
和PipedWriter
创建对象,然后使用connect()
方法连接它们。在这之后,我们简单地使用 PipedReader 和 PipedWriter 类的 read()和 write()方法进行读写。
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 PipedReader 示例,我们正在从字符数组中读取数据。如前所述,我们必须连接PipedReader
和PipedWriter
,在本节目中,我们使用connect()
方法连接PipedWriter
作家。连接后我们使用重载方法public int read(char[] arr, int offset, int maxlen)
,这里arr
是数据源,offset
表示数据源的起始位置,我们将从这里开始读取数据。maxlength
是要读取的数据的长度。对于该方法的每次调用,它将返回该索引上的一个字符。当索引到达源流的末尾时,该方法将返回 -1
。
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 中的PipedReader
类。PipedReader
类用于读取管道的数据,该数据是字符流的格式。PipedReader
必须连接到一个PipedWriter
上。