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:
Java Program to Search for an Element in a Binary Search Tree
Overflow and Underflow in Java
Java – Write an InputStream to a File
String Initialization in Java
Jackson – Marshall String to JsonNode
Server-Sent Events in Spring
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Java Program to Implement Patricia Trie
Java Program to Implement Hash Tables
How to Store Duplicate Keys in a Map in Java?
Spring Webflux and CORS
Hướng dẫn sử dụng String Format trong Java
Python Program to Trim Whitespace From a String
Spring Boot - Building RESTful Web Services
Spring Boot - Tomcat Deployment
HttpClient 4 – Send Custom Cookie
Lớp Properties trong java
Receive email by java client
Biến trong java
Creating a Generic Array in Java
HttpClient Basic Authentication
Java Program to Implement Horner Algorithm
Mapping Nested Values with Jackson
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Guide to java.util.concurrent.Future
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
Converting Iterator to List
How to Find an Element in a List with Java
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java Program to Implement Range Tree
Spring Cloud Connectors and Heroku
Ways to Iterate Over a List in Java