Java - 文字列へのリーダー

このクイックチュートリアルでは、プレーンなJava、Guava、およびApache Commons IOライブラリを使用して、 Reader をStringに変換します。

この記事はリンクの一部です:/java-tutorial[The Java - Back to Basic]シリーズ、ここBaeldung。

1 Java を使う

  • Reader ** から文字を順番に読み込む単純な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コモンズIO 付き

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つの方法。