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:
Multipart Upload with HttpClient 4
Map Serialization and Deserialization with Jackson
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Hướng dẫn Java Design Pattern – Visitor
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
List Interface trong Java
Find the Registered Spring Security Filters
Java Program to Implement Double Order Traversal of a Binary Tree
Easy Ways to Write a Java InputStream to an OutputStream
Consumer trong Java 8
Java Program to Find Transpose of a Graph Matrix
Configure a RestTemplate with RestTemplateBuilder
File Upload with Spring MVC
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Java Program to Implement Euler Circuit Problem
Java Program to implement Priority Queue
Guava – Join and Split Collections
Summing Numbers with Java Streams
HttpClient 4 Cookbook
Creating a Custom Starter with Spring Boot
What is a POJO Class?
Different Ways to Capture Java Heap Dumps
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Converting Between an Array and a Set in Java
New Features in Java 11
Connect through a Proxy
Java Program to Implement RoleList API
Java Program to Compare Binary and Sequential Search
Đồng bộ hóa các luồng trong Java
Programmatic Transaction Management in Spring
Using Java Assertions
Java Program to Perform Search in a BST