1

Jersey の StreamingOutput に関して 2 つの質問があります。

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 に答える