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:
Encode/Decode to/from Base64
Model, ModelMap, and ModelAndView in Spring MVC
Python String rfind()
Interface trong Java 8 – Default method và Static method
HttpClient Connection Management
Guide to the Synchronized Keyword in Java
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Annotation trong Java 8
Java Program to Find Nearest Neighbor for Static Data Set
Python String title()
Java Program to Implement Expression Tree
Java Program to Implement Unrolled Linked List
ClassNotFoundException vs NoClassDefFoundError
Giới thiệu java.io.tmpdir
Hướng dẫn Java Design Pattern – Memento
Spring Boot - Build Systems
Từ khóa this và super trong Java
StringBuilder vs StringBuffer in Java
Java Program to Perform Encoding of a Message Using Matrix Multiplication
So sánh Array và ArrayList trong Java
How to Get the Last Element of a Stream in Java?
Hướng dẫn Java Design Pattern – Command
Anonymous Classes in Java
Format ZonedDateTime to String
Guide to UUID in Java
Lớp Collections trong Java (Collections Utility Class)
Creating a Custom Starter with Spring Boot
Spring Webflux and CORS
String Operations with Java Streams
Introduction to Spring Data JPA
Hướng dẫn Java Design Pattern – Composite
Ways to Iterate Over a List in Java