1

关于泽西岛的 StreamingOutput,我有两个问题:

1)它是否已经被 jax-rs 运行时缓冲了?我已经看到了一些在覆盖 write() 方法时从 OutputStream 对象创建 BufferedWriter 的示例。但我想知道这是否真的有必要。

2) Jersey 或 jax-rs 运行时是否在流完成后关闭 OutputStream 对象?

谢谢,

格格

4

1 回答 1

1

为了获得最高效率,请考虑将 OutputStreamWriter 包装在 BufferedWriter 中,以避免频繁的转换器调用。例如: http ://docs.oracle.com/javase/6/docs/api/java/io/OutputStreamWriter.html

import javax.ws.rs.core.StreamingOutput;
StreamingOutput stream = new StreamingOutput() {
                @Override
                public void write(OutputStream os) throws IOException,
                        WebApplicationException {
                        Writer writer = new BufferedWriter(new OutputStreamWriter(os));
                        writer.write(msg);
                        writer.flush();
                }
            };
于 2014-06-26T14:00:47.727 回答