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.