InputStreamへのJava文字列

InputStreamへのJava文字列

1. 概要

このクイックチュートリアルでは、プレーンJava、Guava、およびApache Commons IOライブラリを使用してconvert a standard String to an InputStreamする方法を見ていきます。

この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。

2. プレーンJavaで変換

Javaを使用して変換を行う簡単な例から始めましょう–中間のbyte配列を使用します。

@Test
public void givenUsingPlainJava_whenConvertingStringToInputStream_thenCorrect()
  throws IOException {
    String initialString = "text";
    InputStream targetStream = new ByteArrayInputStream(initialString.getBytes());
}

getBytes()メソッドは、プラットフォームのデフォルトの文字セットを使用してこのStringをエンコードするため、望ましくない動作を回避するために、getBytes(Charset charset)control the encoding processを使用できます。

3. グアバで変換

Guavaは直接変換方法を提供していませんが、文字列からReaderを取得することはできます。その時点で、InputStreamを取得するのは簡単です。

@Test
public void givenUsingGuava_whenConvertingStringToInputStream_thenCorrect()
  throws IOException {
    String initialString = "text";
    InputStream targetStream =
     new ReaderInputStream(CharSource.wrap(initialString).openStream());
}

4. CommonsIOで変換する

最後に、Apache Commons IOライブラリは、優れた直接的なソリューションを提供します。

@Test
public void givenUsingCommonsIO_whenConvertingStringToInputStream_thenCorrect()
  throws IOException {
    String initialString = "text";
    InputStream targetStream = IOUtils.toInputStream(initialString);
}

最後に、これらの例では入力ストリームを開いたままにしていることに注意してください。close it when you’re doneを忘れないでください。

それだけです–単純な文字列からInputStreamを取得するための3つの単純で簡潔な方法。