InputStreamへのJava文字列
1. 概要
このクイックチュートリアルでは、プレーンなJava、Guava、およびApacheCommonsIOライブラリを使用して標準の文字列をInputStreamに変換する方法を見ていきます。
この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。
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)およびを使用できます。エンコードプロセスを制御します。
3. グアバで変換
Guavaは直接変換方法を提供していませんが、StringからCharSourceを取得し、それをByteSourceに簡単に変換することができます。 次に、InputStreamを取得するのは簡単です。
@Test
public void givenUsingGuava_whenConvertingStringToInputStream_thenCorrect()
throws IOException {
String initialString = "text";
InputStream targetStream =
CharSource.wrap(initialString).asByteSource(StandardCharsets.UTF_8).openStream();
}
ただし、asByteSourceメソッドは@Betaとしてマークされていることに注意してください。 これは、将来のGuavaリリースで削除できることを意味します。 これを覚えておく必要があります。
4. CommonsIOで変換
最後に、ApacheCommonsIOライブラリは優れた直接ソリューションを提供します。
@Test
public void givenUsingCommonsIO_whenConvertingStringToInputStream_thenCorrect()
throws IOException {
String initialString = "text";
InputStream targetStream = IOUtils.toInputStream(initialString);
}
最後に、これらの例では入力ストリームを開いたままにしていることに注意してください。完了したら閉じることを忘れないでください。
5. 結論
この記事では、単純な文字列からInputStreamを取得するための3つの単純で簡潔な方法を紹介しました。
いつものように、完全なソースコードはGitHubでから入手できます。