Java - InputStream zum Reader

In diesem kurzen Tutorial werden wir uns mit der Konvertierung eines InputStreams in einen Reader mit Java, dann mit Guava und schließlich mit Apache Commons IO befassen.

Dieser Artikel ist Teil der Reihe „ Java - Back to Basic “ hier auf Baeldung.

1. Mit Java

Schauen wir uns zunächst die einfache Java-Lösung an - mit dem sofort verfügbaren InputStreamReader :

@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 auf die Guava-Lösung - 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 einer Zwischenzeichenfolge:

@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 einen Java Reader zu konvertieren . Schauen Sie sich das Beispiel auf GitHub an.