如何通过pipedreader将管道数据作为字符串获取

how to get pipes data as string through pipedreader

我正在 java 中构建管道和过滤器应用程序。

我正在通过 pipedWriter 编写一个字符串数组列表。我对如何通过 pipedReader 以字符串形式获取数据感到困惑。

我的方法是获取字符,但我想以字符串的形式获取。

代码如下:

这是为了写作。列表是字符串。

for(String line : Filter1.list)
{
    myPw.write(line);
}

通过管道读取器获取数据:

while((name=(char) myPr.read())!= -1)
{
    System.out.println(name);
} 

我正在从中获取字符数据。不知道如何进入字符串

管道只是字节流,在 Reader/Writer 风格的情况下,它会自动解释为 chars 的流。如果你想用更复杂的结构来解释它,那么你必须在流中实现某种数据协议。

例如,如果您发送的字符串肯定不包含换行符,那么通过换行符或者甚至回车 return / 换行符对来分隔字符串是很自然的。如果您需要在不关闭管道的情况下发出列表末尾的信号,那么您也需要一个标记。

或者,您可以先发送一个数字,说明要接受多少个字符串,然后为每个字符串先发送长度,然后发送字符。

这个主题还有许多其他变体。

在读取端,您根据您建立的协议解释流内容assemble您读取的字符为字符串,然后字符串为列表。