Table of Contents
In this quick tutorial we’re going to convert a Reader into a String using plain Java, Guava and the Apache Commons IO library.
This article is part of the “Java – Back to Basic” series here on VietMX’s Blog.
1. With Java
Let’s start with a simple Java solution that reads characters sequentially from the Reader:
@Test
public void givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect()
throws IOException {
StringReader reader = new StringReader("text");
int intValueOfChar;
String targetString = "";
while ((intValueOfChar = reader.read()) != -1) {
targetString += (char) intValueOfChar;
}
reader.close();
}
If there is a lot of content to read, a bulk-read solution will work better:
@Test
public void givenUsingPlainJava_whenConvertingReaderIntoStringV2_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("text");
char[] arr = new char[8 * 1024];
StringBuilder buffer = new StringBuilder();
int numCharsRead;
while ((numCharsRead = initialReader.read(arr, 0, arr.length)) != -1) {
buffer.append(arr, 0, numCharsRead);
}
initialReader.close();
String targetString = buffer.toString();
}
2. With Guava
Guava provides a utility that can do the conversion directly:
@Test
public void givenUsingGuava_whenConvertingReaderIntoString_thenCorrect()
throws IOException {
Reader initialReader = CharSource.wrap("With Google Guava").openStream();
String targetString = CharStreams.toString(initialReader);
initialReader.close();
}
3. With Commons IO
Same with Apache Commons IO – there is an IO utility capable of performing the direct conversion:
@Test
public void givenUsingCommonsIO_whenConvertingReaderIntoString_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("With Apache Commons");
String targetString = IOUtils.toString(initialReader);
initialReader.close();
}
And there you have it – 4 ways of transforming a Reader into a plain String. Make sure to check out the sample over on GitHub.
Related posts:
Registration with Spring Security – Password Encoding
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Check if there is mail waiting
Java Program to Implement Max Heap
Java Program to Perform integer Partition for a Specific Case
The Order of Tests in JUnit
Giới thiệu java.io.tmpdir
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Hashtable trong java
A Guide to Java 9 Modularity
String Set Queries
Apache Commons Collections OrderedMap
Java Program to Implement LinkedTransferQueue API
Java Program to Implement SynchronosQueue API
Build a REST API with Spring and Java Config
Java Program to Solve Tower of Hanoi Problem using Stacks
Guide to Java OutputStream
Guide to the Java Clock Class
Java Program to Implement Horner Algorithm
Java Program to find the maximum subarray sum using Binary Search approach
Java Program to Implement Heap Sort Using Library Functions
Java Program to Create a Random Linear Extension for a DAG
Java – Create a File
XML-Based Injection in Spring
The Registration API becomes RESTful
Python String join()
Giới thiệu Google Guice – Injection, Scope
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Java Program to Implement Regular Falsi Algorithm
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
More Jackson Annotations