Java - Reader naar String

In deze korte tutorial gaan we converteer een Lezer in een string met behulp van gewone Java, Guava en de Apache Commons IO-bibliotheek.

Dit artikel maakt deel uit van de serie "Java - Back to Basic" hier op Baeldung.

1. Met Java

Laten we beginnen met een eenvoudige Java-oplossing die leest tekens opeenvolgend uit de Lezer:

@Test openbare leegte gegevenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect () gooit IOException {StringReader reader = nieuwe StringReader ("tekst"); int intValueOfChar; String targetString = ""; while ((intValueOfChar = reader.read ())! = -1) {targetString + = (char) intValueOfChar; } reader.close (); }

Als er veel inhoud te lezen is, werkt een bulkleesoplossing beter:

@Test openbare leegte gegevenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect () gooit IOException {Reader initialReader = nieuwe StringReader ("tekst"); char [] arr = nieuw char [8 * 1024]; StringBuilder-buffer = nieuwe StringBuilder (); int numCharsRead; while ((numCharsRead = initialReader.read (arr, 0, arr.length))! = -1) {buffer.append (arr, 0, numCharsRead); } initialReader.close (); String targetString = buffer.toString (); }

2. Met Guava

Guava biedt een hulpprogramma dat kan doe de conversie direct:

@Test openbare leegte gegevenUsingGuava_whenConvertingReaderIntoString_thenCorrect () gooit IOException {Reader initialReader = CharSource.wrap ("Met Google Guava"). OpenStream (); String targetString = CharStreams.toString (initialReader); initialReader.close (); }

3. Met Commons IO

Hetzelfde met Apache Commons IO - er is een IO-hulpprogramma dat het directe conversie:

@Test openbare leegte gegevenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect () gooit IOException {Reader initialReader = nieuwe StringReader ("Met Apache Commons"); String targetString = IOUtils.toString (initialReader); initialReader.close (); }

En daar heb je het - 4 manieren om een Lezer in een gewone String. Zorg ervoor dat je het voorbeeld bekijkt op GitHub.


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