Java - az InputStream olvasója

Ebben a gyors bemutatóban megnézzük a konverzió a Olvasó egy InputStream - először sima Java-val, majd Guava-val, végül az Apache Commons IO könyvtárral.

Ez a cikk a „Java - Vissza az alapokhoz” sorozat része, itt, Baeldungon.

1. Java-val

Kezdjük a Java megoldással:

@Test public void givenUsingPlainJava_whenConvertingReaderIntoInputStream_thenCorrect () dobja az IOException {Reader initialReader = új StringReader ("Java-val"); char [] charBuffer = új char [8 * 1024]; StringBuilder builder = új StringBuilder (); int numCharsRead; while ((numCharsRead = initialReader.read (charBuffer, 0, charBuffer.length))! = -1) {builder.append (charBuffer, 0, numCharsRead); } InputStream targetStream = új ByteArrayInputStream (builder.toString (). GetBytes (StandardCharsets.UTF_8)); initialReader.close (); targetStream.close (); }

Figyelje meg, hogy egyszerre olvasunk (és írunk) adatdarabokat.

2. Guavával

Következő - nézzük meg a sokkal egyszerűbb guavai megoldás:

@Test public void givenUsingGuava_whenConvertingReaderIntoInputStream_thenCorrect () dobja az IOException {Reader initialReader = new StringReader ("Guavával"); InputStream targetStream = new ByteArrayInputStream (CharStreams.toString (initialReader) .getBytes (Charsets.UTF_8)); initialReader.close (); targetStream.close (); }

Figyelje meg, hogy a dobozon kívüli bemeneti adatfolyamot használjuk, amely a teljes átalakítást egy vonalba alakítja.

3. A Commons IO-val

Végül - nézzük meg a Commons IO megoldás - egy egyszerű bélés is:

@Test public void givenUsingCommonsIO_whenConvertingReaderIntoInputStream () dobja az IOException {Reader initialReader = new StringReader ("Commons IO-val"); InputStream targetStream = IOUtils.toInputStream (IOUtils.toString (initialReader), Charsets.UTF_8); initialReader.close (); targetStream.close (); }

Ne feledje, hogy itt bármilyen Readerrel foglalkozunk - de ha kifejezetten szöveges adatokkal dolgozik, akkor mindig érdemes a karakterkészletet kifejezetten megadni, nem pedig a JVM alapértelmezett használata.

És itt van - 3 egyszerű módja a Olvasó egy an InputStream. Ügyeljen arra, hogy ellenőrizze a mintát a GitHubon.


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