Java - Reader to String

In questo breve tutorial convertiremo un Reader in una stringa utilizzando Java, Guava e la libreria IO di Apache Commons.

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

1. Con Java

Cominciamo con una semplice soluzione Java che legge i caratteri in sequenza dal Reader :

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

Se c'è molto contenuto da leggere, una soluzione di lettura in blocco funzionerà meglio:

@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. Con Guava

Guava fornisce un'utilità che può eseguire direttamente la conversione :

@Test public void givenUsingGuava_whenConvertingReaderIntoString_thenCorrect() throws IOException { Reader initialReader = CharSource.wrap("With Google Guava").openStream(); String targetString = CharStreams.toString(initialReader); initialReader.close(); }

3. Con Commons IO

Lo stesso con Apache Commons IO: esiste un'utilità IO in grado di eseguire la conversione diretta :

@Test public void givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect() throws IOException { Reader initialReader = new StringReader("With Apache Commons"); String targetString = IOUtils.toString(initialReader); initialReader.close(); }

Ed ecco fatto: 4 modi per trasformare un Reader in una semplice stringa. Assicurati di controllare l'esempio su GitHub.