Java PipedReader

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

在本教程中,我们将学习 Java 中的PipedReader 类。PipedReader类用于读取管道的数据,该数据是字符流的格式。在实现PipedReader时,我们必须注意这必须连接到不同线程使用的PipedWriter和一般的PipedReaderPipedWriter,而不是在同一线程上运行。

enlightened注意:清管器必须连接到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()方法。首先,我们为类PipedReaderPipedWriter创建对象,然后使用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 示例,我们正在从字符数组中读取数据。如前所述,我们必须连接PipedReaderPipedWriter,在本节目中,我们使用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上。