Java - Læser til streng

I denne hurtige vejledning skal vi konvertere en Læser ind i en streng ved hjælp af almindeligt Java, Guava og Apache Commons IO-biblioteket.

Denne artikel er en del af "Java - Back to Basic" -serien her på Baeldung.

1. Med Java

Lad os starte med en simpel Java-løsning, der læser tegn i rækkefølge fra Læser:

@Test offentlig ugyldighed givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect () kaster IOException {StringReader reader = ny StringReader ("tekst"); int intValueOfChar; String targetString = ""; mens ((intValueOfChar = reader.read ())! = -1) {targetString + = (char) intValueOfChar; } reader.close (); }

Hvis der er meget indhold at læse, fungerer en bulk-læst løsning bedre:

@Test offentlig ugyldighed givenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect () kaster IOException {Reader initialReader = ny StringReader ("tekst"); char [] arr = ny char [8 * 1024]; StringBuilder buffer = ny StringBuilder (); int numCharsRead; mens ((numCharsRead = initialReader.read (arr, 0, arr.length))! = -1) {buffer.append (arr, 0, numCharsRead); } initialReader.close (); Streng targetString = buffer.toString (); }

2. Med Guava

Guava giver et værktøj, der kan udfør konverteringen direkte:

@Test offentlig ugyldighed givenUsingGuava_whenConvertingReaderIntoString_thenCorrect () kaster IOException {Reader initialReader = CharSource.wrap ("Med Google Guava"). OpenStream (); Streng targetString = CharStreams.toString (initialReader); initialReader.close (); }

3. Med Commons IO

Samme med Apache Commons IO - der er et IO-værktøj, der er i stand til at udføre direkte konvertering:

@Test offentlig ugyldighed givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect () kaster IOException {Reader initialReader = ny StringReader ("Med Apache Commons"); String targetString = IOUtils.toString (initialReader); initialReader.close (); }

Og der har du det - 4 måder at transformere en Læser ind i en almindelig streng. Sørg for at tjekke prøven på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found