Table of Contents
In this quick tutorial we’re going to take a look at converting an InputStream to a Reader using Java, then Guava and finally Apache Commons IO.
This article is part of the “Java – Back to Basic” series here on VietMX’s Blog.
1. With Java
First, let’s look at the simple Java solution – using the readily available InputStreamReader:
@Test public void givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect() throws IOException { InputStream initialStream = new ByteArrayInputStream("With Java".getBytes()); Reader targetReader = new InputStreamReader(initialStream); targetReader.close(); }
2. With Guava
Next – let’s take a look at the Guava solution – using an intermediary byte array and 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(); }
Note that the Java solution is simpler than this approach.
3. With Commons IO
Finally – the solution using Apache Commons IO – also using an intermediary String:
@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(); }
And there you have it – 3 quick ways to convert the input stream to a Java Reader. Make sure to check out the sample over on GitHub.
Related posts:
Java Program to Implement Binomial Heap
Bootstrap a Web Application with Spring 5
An Intro to Spring Cloud Vault
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Guide to the Java Clock Class
Guide to the Java TransferQueue
LinkedHashSet trong Java hoạt động như thế nào?
Java InputStream to String
Guide to java.util.Formatter
Introduction to the Java NIO Selector
Java Program to Implement Skip List
Mảng (Array) trong Java
Giới thiệu thư viện Apache Commons Chain
Giới thiệu java.io.tmpdir
Spring Boot - Database Handling
Introduction to Spring MVC HandlerInterceptor
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Spring Boot - Batch Service
Java Program to Implement Sparse Matrix
Java Program to Implement Borwein Algorithm
Java Program to Implement Dijkstra’s Algorithm using Set
Spring Boot - Securing Web Applications
Intro to the Jackson ObjectMapper
Java Program to Check whether Graph is a Bipartite using BFS
Hashtable trong java
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java InputStream to Byte Array and ByteBuffer
Transactions with Spring and JPA
Spring WebFlux Filters
Spring Boot: Customize Whitelabel Error Page
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Guide to Character Encoding