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

时间:2015-04-27 11:51:07

标签: java pipes-filters

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

我正在通过pipedWriter编写一个字符串数组列表。我很少混淆如何通过pipedReader将数据作为字符串获取。

我正在做的方式是获取角色,但我希望以字符串的形式出现。

这是代码:

这是写作。 list是字符串。

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

通过pipedreader获取数据:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

此主题还有许多其他变体。

在阅读方面,您可以根据您建立的协议解释流内容,以便将您读取的字符组合成字符串,并将字符串组合成一个列表。