Java - Reader to String
I denne raske opplæringen skal vi konvertere en Leser inn i en streng ved hjelp av vanlig Java, Guava og Apache Commons IO-biblioteket.
Denne artikkelen er en del av "Java - Back to Basic" -serien her på Baeldung.
1. Med Java
La oss starte med en enkel Java-løsning som leser tegn sekvensielt fra Leser:
@Test offentlig ugyldighet givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect () kaster IOException {StringReader reader = new StringReader ("text"); int intValueOfChar; String targetString = ""; mens ((intValueOfChar = reader.read ())! = -1) {targetString + = (char) intValueOfChar; } reader.close (); }
Hvis det er mye innhold å lese, vil en løsning i bulk lese bedre:
@Test offentlig ugyldighet givenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect () kaster IOException {Reader initialReader = new StringReader ("text"); røye [] arr = ny røye [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 gir et verktøy som kan gjør konverteringen direkte:
@Test offentlig ugyldighet givenUsingGuava_whenConvertingReaderIntoString_thenCorrect () kaster IOException {Reader initialReader = CharSource.wrap ("With Google Guava"). OpenStream (); Streng targetString = CharStreams.toString (initialReader); initialReader.close (); }
3. Med Commons IO
Samme med Apache Commons IO - det er et IO-verktøy som kan utføre direkte konvertering:
@Test offentlig ugyldighet givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect () kaster IOException {Reader initialReader = new StringReader ("With Apache Commons"); Streng targetString = IOUtils.toString (initialReader); initialReader.close (); }
Og der har du det - 4 måter å transformere en Leser inn i en vanlig streng. Sørg for å sjekke ut prøven på GitHub.