我正在java中构建管道和过滤器应用程序。
我正在通过pipedWriter编写一个字符串数组列表。我很少混淆如何通过pipedReader将数据作为字符串获取。
我正在做的方式是获取角色,但我希望以字符串的形式出现。
这是代码:
这是写作。 list是字符串。
for(String line : Filter1.list)
{
myPw.write(line);
}
通过pipedreader获取数据:
while((name=(char) myPr.read())!= -1)
{
System.out.println(name);
}
我从中获取字符数据。不知道如何进入字符串
答案 0 :(得分:1)
管道只是一个字节流,在Reader / Writer风格的情况下自动被解释为char
的流。如果您想根据更复杂的结构来解释它,那么您必须在流中实现某种数据协议。
例如,如果您发送的字符串确定不包含换行符,那么通过换行符或甚至回车符/换行符对来划分字符串是很自然的。如果您需要在不关闭管道的情况下发出列表末尾的信号,那么您也需要一个标记。
或者,您可以先发送一个数字,说明要接受多少个字符串,然后为每个字符串首先发送长度,然后是字符。
此主题还有许多其他变体。
在阅读方面,您可以根据您建立的协议解释流内容,以便将您读取的字符组合成字符串,并将字符串组合成一个列表。