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 VList
XML Serialization and Deserialization with Jackson
Compact Strings in Java 9
A Guide to Java 9 Modularity
Java Program to Implement Segment Tree
Spring Boot: Customize Whitelabel Error Page
Giới thiệu Json Web Token (JWT)
Một số ký tự đặc biệt trong Java
Java Program to Implement K Way Merge Algorithm
How to Store Duplicate Keys in a Map in Java?
Java Program to Implement RenderingHints API
Java Program to Implement Aho-Corasick Algorithm for String Matching
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to Find All Pairs Shortest Path
Giới thiệu Google Guice – Binding
Convert char to String in Java
TreeSet và sử dụng Comparable, Comparator trong java
Merging Two Maps with Java 8
Java Program to Permute All Letters of an Input String
Java Program to implement Bit Matrix
Giới thiệu Google Guice – Injection, Scope
Hướng dẫn Java Design Pattern – Prototype
Java Program to Find a Good Feedback Edge Set in a Graph
Java Program to Implement ArrayDeque API
Jackson Exceptions – Problems and Solutions
Java Program to Perform the Unique Factorization of a Given Number
Immutable ArrayList in Java
A Guide To UDP In Java
Auditing with JPA, Hibernate, and Spring Data JPA
New Features in Java 10
Java Program to Describe the Representation of Graph using Adjacency List
Java Program to Construct an Expression Tree for an Infix Expression