是否有一个更简洁/标准的习惯用法(例如,JDK方法)用于"管道"输入到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
被给予.正确答案将演示如何获取in
和out
形成管道(最好不超过1或2个方法调用).我将接受答案,其中in
和out
是InputStream
和OutputStream
(最好是从/到Reader
/ 的转换Writer
).我不会接受的答案无论是地方in
还是out
是一个子类的Reader
/ InputStream
或Writer
/ OutputStrem
.
IOUtils从Apache Commons项目有许多utilily方法是做你需要什么.
IOUtils.copy(in, out)
将执行输出的所有输入的缓冲副本.如果您的代码库中有多个需要Stream
或Reader
/ Writer
处理的位置,使用IOUtils可能是个好主意.