Javaによる、String⇔InputStreamの相互変換

Javaでプログラムを組んでいると、StringからInputStreamに変換したり、逆に、InputStreamからStringに変換を行う必要があることがあります。

特に、ライブラリを利用していて、そのライブラリの関数の引数の型に合わせなければならないシーンで良く使うTipsですね。

最近は、Webサービスを利用することが多く、その戻り値をxmlで解析する場合には、パーサの引数がInputStream型だったり、それをデバッグ用にString型に変換したりするのに多用しています。。

InputStream型 ⇒ String型

BufferedReader br
    = new BufferedReader(
    new InputStreamReader(is));
 
StringBuilder sb = new StringBuilder();
 
String line;
 
while ((line = br.readLine()) != null) {
    sb.append(line);
}
 
System.out.println(sb.toString());
 
br.close();

String型 ⇒ InputStream型

String rtnXml = "aaaaaaaaaaaa";
InputStream bais = new ByteArrayInputStream(rtnXml.getBytes("utf-8"));