Java - InputStream zum Reader

Java - InputStream zum Leser

In diesem kurzen Tutorial werden wir unsconverting an InputStream to a Reader mit Java, dann Guava und schließlich Apache Commons IO ansehen.

Dieser Artikel ist Teil vonthe “Java – Back to Basic” series hier am Beispiel.

1. Mit Java

Schauen wir uns zunächst die einfache Java-Lösung an - unter Verwendung der leicht verfügbarenInputStreamReader:

@Test
public void givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect()
  throws IOException {
    InputStream initialStream = new ByteArrayInputStream("With Java".getBytes());

    Reader targetReader = new InputStreamReader(initialStream);

    targetReader.close();
}

2. Mit Guave

Als nächstes - werfen wir einen Blick aufthe Guava solution - verwenden Sie ein Zwischenbyte-Array und einen String:

@Test
public void givenUsingGuava_whenConvertingInputStreamIntoReader_thenCorrect()
  throws IOException {
    InputStream initialStream = ByteSource.wrap("With Guava".getBytes()).openStream();

    byte[] buffer = ByteStreams.toByteArray(initialStream);
    Reader targetReader = CharSource.wrap(new String(buffer)).openStream();

    targetReader.close();
}

Beachten Sie, dass die Java-Lösung einfacher ist als dieser Ansatz.

3. Mit Commons IO

Schließlich - die Lösung mit Apache Commons IO - auch mit einem Zwischen-String:

@Test
public void givenUsingCommonsIO_whenConvertingInputStreamIntoReader_thenCorrect()
  throws IOException {
    InputStream initialStream = IOUtils.toInputStream("With Commons IO");

    byte[] buffer = IOUtils.toByteArray(initialStream);
    Reader targetReader = new CharSequenceReader(new String(buffer));

    targetReader.close();
}

Und da haben Sie es - 3 schnelle Möglichkeiten, den Eingabestream in JavaReader zu konvertieren.