如何通过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 风格的情况下,它会自动解释为 char
s 的流。如果你想用更复杂的结构来解释它,那么你必须在流中实现某种数据协议。
例如,如果您发送的字符串肯定不包含换行符,那么通过换行符或者甚至回车 return / 换行符对来分隔字符串是很自然的。如果您需要在不关闭管道的情况下发出列表末尾的信号,那么您也需要一个标记。
或者,您可以先发送一个数字,说明要接受多少个字符串,然后为每个字符串先发送长度,然后发送字符。
这个主题还有许多其他变体。
在读取端,您根据您建立的协议解释流内容assemble您读取的字符为字符串,然后字符串为列表。
我正在 java 中构建管道和过滤器应用程序。
我正在通过 pipedWriter 编写一个字符串数组列表。我对如何通过 pipedReader 以字符串形式获取数据感到困惑。
我的方法是获取字符,但我想以字符串的形式获取。
代码如下:
这是为了写作。列表是字符串。
for(String line : Filter1.list)
{
myPw.write(line);
}
通过管道读取器获取数据:
while((name=(char) myPr.read())!= -1)
{
System.out.println(name);
}
我正在从中获取字符数据。不知道如何进入字符串
管道只是字节流,在 Reader/Writer 风格的情况下,它会自动解释为 char
s 的流。如果你想用更复杂的结构来解释它,那么你必须在流中实现某种数据协议。
例如,如果您发送的字符串肯定不包含换行符,那么通过换行符或者甚至回车 return / 换行符对来分隔字符串是很自然的。如果您需要在不关闭管道的情况下发出列表末尾的信号,那么您也需要一个标记。
或者,您可以先发送一个数字,说明要接受多少个字符串,然后为每个字符串先发送长度,然后发送字符。
这个主题还有许多其他变体。
在读取端,您根据您建立的协议解释流内容assemble您读取的字符为字符串,然后字符串为列表。