このクイックチュートリアルでは、プレーンなJava、Guava、およびApache Commons IOライブラリを使用して、リーダーを文字列に変換します。
この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。
1. Javaを使用
リーダーから文字を順番に読み取る単純なJavaソリューションから始めましょう。
@Test
public void givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect()
throws IOException {
StringReader reader = new StringReader("text");
int intValueOfChar;
String targetString = "";
while ((intValueOfChar = reader.read()) != -1) {
targetString += (char) intValueOfChar;
}
reader.close();
}
読み取るコンテンツが多い場合は、一括読み取りソリューションの方が適しています。
@Test
public void givenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("text");
char[] arr = new char[8 * 1024];
StringBuilder buffer = new StringBuilder();
int numCharsRead;
while ((numCharsRead = initialReader.read(arr, 0, arr.length)) != -1) {
buffer.append(arr, 0, numCharsRead);
}
initialReader.close();
String targetString = buffer.toString();
}
2. グアバと
Guavaは、変換を直接実行できるユーティリティを提供します。
@Test
public void givenUsingGuava_whenConvertingReaderIntoString_thenCorrect()
throws IOException {
Reader initialReader = CharSource.wrap("With Google Guava").openStream();
String targetString = CharStreams.toString(initialReader);
initialReader.close();
}
3. CommonsIOを使用
Apache Commons IOと同じ–直接変換を実行できるIOユーティリティがあります。
@Test
public void givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("With Apache Commons");
String targetString = IOUtils.toString(initialReader);
initialReader.close();
}
Readerをプレーンな文字列に変換する4つの方法があります。 GitHubでサンプルを確認してください。