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.