Java - InputStream ke Pembaca

Dalam tutorial ringkas ini kita akan melihat cara menukar InputStream ke Reader menggunakan Java, kemudian Guava dan akhirnya Apache Commons IO.

Artikel ini adalah sebahagian daripada siri " Java - Back to Basic " di Baeldung.

1. Dengan Java

Pertama, mari kita lihat penyelesaian Java yang mudah - menggunakan InputStreamReader yang tersedia :

@Test public void givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect() throws IOException { InputStream initialStream = new ByteArrayInputStream("With Java".getBytes()); Reader targetReader = new InputStreamReader(initialStream); targetReader.close(); }

2. Dengan Jambu Batu

Seterusnya - mari kita lihat penyelesaian Jambu Batu - menggunakan susunan bait perantara dan String:

@Test public void givenUsingGuava_whenConvertingInputStreamIntoReader_thenCorrect() throws IOException { InputStream initialStream = ByteSource.wrap("With Guava".getBytes()).openStream(); byte[] buffer = ByteStreams.toByteArray(initialStream); Reader targetReader = CharSource.wrap(new String(buffer)).openStream(); targetReader.close(); }

Perhatikan bahawa penyelesaian Java lebih mudah daripada pendekatan ini.

3. Dengan Commons IO

Akhirnya - penyelesaian menggunakan Apache Commons IO - juga menggunakan String perantara:

@Test public void givenUsingCommonsIO_whenConvertingInputStreamIntoReader_thenCorrect() throws IOException { InputStream initialStream = IOUtils.toInputStream("With Commons IO"); byte[] buffer = IOUtils.toByteArray(initialStream); Reader targetReader = new CharSequenceReader(new String(buffer)); targetReader.close(); }

Dan di sana anda memilikinya - 3 cara cepat untuk menukar aliran input ke Java Reader . Pastikan untuk memeriksa sampel di GitHub.