1. ホーム
  2. java

[解決済み] OutputStreamを文字列に変換する

2022-03-15 21:51:47

質問

Javaでjava.io.OutputStreamからStringに出力をパイプする最も良い方法は何ですか?

このようなメソッドがあるとします。

  writeToStream(Object o, OutputStream out)

これは、オブジェクトから与えられたストリームに特定のデータを書き込むものです。しかし、私はこの出力をできるだけ簡単にStringにしたい。

こんな感じのクラスを書こうかと考えています(未検証)。

class StringOutputStream extends OutputStream {

  StringBuilder mBuf;

  public void write(int byte) throws IOException {
    mBuf.append((char) byte);
  }

  public String getString() {
    return mBuf.toString();
  }
}

しかし、もっと良い方法はないのでしょうか?テストだけ実行したいんです!

どのように解決するのですか?

私なら ByteArrayOutputStream . そして、終了時に呼び出すことができます。

new String( baos.toByteArray(), codepage );

またはそれ以上です。

baos.toString( codepage );

については String コンストラクタの codepageString のインスタンスか java.nio.charset.Charset . 可能な値は java.nio.charset.StandardCharsets.UTF_8 .

メソッド toString()Stringcodepage パラメータを使用することができます(stand Java 8)。