問題

java.io.InputStreamオブジェクトがある場合、そのオブジェクトをどのように処理し、Stringを生成する必要がありますか?


テキストデータを含むInputStreamがあり、それをStringに変換したいので、たとえばログファイルに書き込むことができます。

InputStreamStringに変換する最も簡単な方法は何ですか?

 public String convertStreamToString(InputStream is) {
    // ???
}
 

  ベストアンサー

これを行う良い方法は、 Apacheコモンズ IOUtilsを使用してInputStreamStringWriterにコピーすることです。

 StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, encoding);
String theString = writer.toString();
 

または

 // NB: does not close inputStream, you'll have to use try-with-resources for that
String theString = IOUtils.toString(inputStream, encoding); 
 

あるいは、ストリームとライターを混在させたくない場合は、ByteArrayOutputStreamを使用することもできます。

  同じタグがついた質問を見る

javastringiostreaminputstream