2015-04-27 54 views
0

我正在java中构建管道和过滤器应用程序。如何通过管道读取器获取管道数据字符串

我正在通过pipedWriter编写一个字符串数组列表。我有点困惑,如何通过pipedReader将数据作为字符串获取。

我在做的方式是通过获取字符,但我想获得字符串的形式。

这是代码:

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

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

通过pipedreader获取数据:

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

我在这个角色中获取数据。不知道如何获取字符串

回答

1

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

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

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

这个主题还有很多其他的变化。

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