Java - InputStream to Reader

Trong hướng dẫn nhanh này, chúng ta sẽ xem xét việc chuyển đổi InputStream thành Reader bằng Java, sau đó là Guava và cuối cùng là Apache Commons IO.

Bài viết này là một phần của loạt bài “ Java - Back to Basic ” trên Baeldung.

1. Với Java

Đầu tiên, hãy xem giải pháp Java đơn giản - sử dụng InputStreamReader có sẵn :

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

2. Với Ổi

Tiếp theo - hãy xem giải pháp Guava - sử dụng mảng byte trung gian và Chuỗi:

@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(); }

Lưu ý rằng giải pháp Java đơn giản hơn cách tiếp cận này.

3. Với Commons IO

Cuối cùng - giải pháp sử dụng Apache Commons IO - cũng sử dụng chuỗi trung gian:

@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(); }

Và bạn đã có nó - 3 cách nhanh chóng để chuyển đổi luồng đầu vào sang Java Reader . Hãy chắc chắn rằng bạn đã xem qua mẫu trên GitHub.