Java で java.io.OutputStream からの出力を文字列にパイプする最適な方法は何ですか?
次のメソッドがあるとします:
writeToStream(Object o, OutputStream out)
これは、オブジェクトから特定のデータを指定されたストリームに書き込みます。ただし、この出力をできるだけ簡単に文字列に変換したいと考えています。
次のようなクラスを書くことを検討しています (未テスト):
class StringOutputStream extends OutputStream {
StringBuilder mBuf;
public void write(int byte) throws IOException {
mBuf.append((char) byte);
}
public String getString() {
return mBuf.toString();
}
}
しかし、もっと良い方法はあるのでしょうか? テストを実行したいだけなのです!
ベストアンサー1
私は を使用しますByteArrayOutputStream
。そして終了時に以下を呼び出すことができます:
new String( baos.toByteArray(), codepage );
またはより良い:
baos.toString( codepage );
コンストラクタの場合String
、 はまたは のインスタンスにcodepage
なります。String
java.nio.charset.文字セット可能な値はjava.nio.charset.StandardCharsets.UTF_8。
メソッドは、パラメータとしてtoString()
のみを受け入れます(Java 8 の場合)。String
codepage