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:
Lập trình mạng với java
Exception Handling in Java
Java Program to Implement the Vigenere Cypher
Java Program to Implement Hash Tables with Quadratic Probing
Tạo chương trình Java đầu tiên sử dụng Eclipse
Integer Constant Pool trong Java
Java Program to Find Nearest Neighbor for Dynamic Data Set
Convert char to String in Java
Java Program to Implement Rope
More Jackson Annotations
Java Program to Implement PrinterStateReasons API
Spring Boot - Admin Client
Introduction to Netflix Archaius with Spring Cloud
Guide to ThreadLocalRandom in Java
Object cloning trong java
Comparing Dates in Java
Pagination and Sorting using Spring Data JPA
Hướng dẫn Java Design Pattern – Facade
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
An Introduction to ThreadLocal in Java
String Operations with Java Streams
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Setting the Java Version in Maven
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Java Program to Implement AttributeList API
Java Switch Statement
Convert Hex to ASCII in Java
Apache Commons Collections OrderedMap
Java – Convert File to InputStream
Beans and Dependency Injection
Getting the Size of an Iterable in Java
Java Program to Check whether Undirected Graph is Connected using BFS