Java - InputStream in Reader

In questo breve tutorial daremo un'occhiata alla conversione di un InputStream in un Reader utilizzando Java, quindi Guava e infine Apache Commons IO.

Questo articolo fa parte della serie " Java - Back to Basic " qui su Baeldung.

1. Con Java

Per prima cosa, diamo un'occhiata alla semplice soluzione Java, utilizzando InputStreamReader immediatamente disponibile :

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

2. Con Guava

Successivamente, diamo un'occhiata alla soluzione Guava, utilizzando un array di byte intermedio e una stringa:

@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(); }

Notare che la soluzione Java è più semplice di questo approccio.

3. Con Commons IO

Infine - la soluzione che utilizza Apache Commons IO - anche utilizzando una stringa intermedia:

@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(); }

Ed ecco fatto: 3 modi rapidi per convertire il flusso di input in un lettore Java . Assicurati di controllare l'esempio su GitHub.