题
对于“管道”是否有更简洁/标准的习惯用法(例如,JDK方法)。 Java输出到Java的输出?
public void pipe(Reader in, Writer out) { CharBuffer buf = CharBuffer.allocate(DEFAULT_BUFFER_SIZE); while( in.read(buf) >= 0 ) { out.append(buf.flip()); buf.clear(); } }
[编辑]请注意 Reader
和 Writer
。正确的答案将演示如何在和 out
中使用并形成一个管道(最好不超过1或2个方法调用)。我将接受答案,其中
in
和 out
是 InputStream
和 OutputStream
(最好是从/到转换) <代码>阅读器代码> / <代码>作家代码>)。我不接受 in
或 out
是 Reader
/ InputStream的子类的答案
或 Writer
/ OutputStrem
。
其他提示
查看 java.io.PipedInputStream 和 PipedOutputStream ,或 PipedReader / PipedWriter 来自同一个软件包。
来自PipedInputStream的文档:
管道输入流应连接到管道输出流;然后,管道输入流提供写入管道输出流的任何数据字节。通常,一个线程从PipedInputStream对象读取数据,并且某些其他线程将数据写入相应的PipedOutputStream。建议不要尝试使用单个线程中的两个对象,因为它可能使线程死锁。管道输入流包含缓冲区,在一定限度内将读操作与写操作分离。如果为连接的管道输出流提供数据字节的线程不再存在,则称管道被破坏。
不隶属于 StackOverflow