Java - čítačka reťazcov
V tomto rýchlom výučbe sa chystáme konvertovať a Čitateľ do reťazca pomocou obyčajnej Javy, Guavy a knižnice Apache Commons IO.
Tento článok je súčasťou série „Java - Späť na základné“ tu na Baeldungu.
1. S programom Java
Začnime s jednoduchým riešením Java, ktoré číta znaky postupne z Čitateľ:
@Test public void givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect () vyvolá IOException {StringReader reader = nový StringReader ("text"); int intValueOfChar; Reťazec targetString = ""; while ((intValueOfChar = reader.read ())! = -1) {targetString + = (char) intValueOfChar; } reader.close (); }
Ak je potrebné čítať veľa obsahu, riešenie hromadného čítania bude fungovať lepšie:
@Test public void givenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect () vyvolá IOException {Reader initialReader = nový StringReader ("text"); char [] arr = nový char [8 * 1024]; StringBuilder buffer = nový StringBuilder (); int numCharsRead; while ((numCharsRead = initialReader.read (arr, 0, arr.length))! = -1) {buffer.append (arr, 0, numCharsRead); } initialReader.close (); Reťazec targetString = buffer.toString (); }
2. S Guavou
Guava poskytuje nástroj, ktorý dokáže urobte prevod priamo:
@Test public void givenUsingGuava_whenConvertingReaderIntoString_thenCorrect () hodí IOException {Reader initialReader = CharSource.wrap ("With Google Guava"). OpenStream (); Reťazec targetString = CharStreams.toString (initialReader); initialReader.close (); }
3. S Commons IO
To isté platí pre Apache Commons IO - existuje IO utilita schopná vykonávať priama premena:
@Test public void givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect () vyvolá IOException {Reader initialReader = nový StringReader ("With Apache Commons"); Reťazec targetString = IOUtils.toString (initialReader); initialReader.close (); }
A máte to - 4 spôsoby transformácie a Čitateľ na obyčajný reťazec. Uistite sa, že ste si vzorku prezreli na GitHub.