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 Implement the Vigenere Cypher
A Guide to ConcurrentMap
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement Min Heap
Control the Session with Spring Security
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Java Program to Represent Graph Using 2D Arrays
Java Program to implement Associate Array
Java Program to Test Using DFS Whether a Directed Graph is Weakly Connected or Not
Reversing a Linked List in Java
Java 8 Stream API Analogies in Kotlin
Java Program to Solve the Fractional Knapsack Problem
Java program to Implement Tree Set
Java Program to Implement Radix Sort
Instance Profile Credentials using Spring Cloud
Java – Write to File
Giới thiệu JDBC Connection Pool
Spring Boot - Tracing Micro Service Logs
Java Program to Implement TreeMap API
Cài đặt và sử dụng Swagger UI
Spring Boot - Scheduling
A Guide to the ResourceBundle
Java Program to Implement Johnson’s Algorithm
Java Program to Implement Fermat Primality Test Algorithm
Assert an Exception is Thrown in JUnit 4 and 5
Spring Data MongoDB Transactions
Copy a List to Another List in Java
Adding Parameters to HttpClient Requests
Tìm hiểu về Web Service
What is Thread-Safety and How to Achieve it?
Exploring the Spring Boot TestRestTemplate
New Features in Java 12