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:
Convert Hex to ASCII in Java
Guide to the Volatile Keyword in Java
Generate Spring Boot REST Client with Swagger
Giới thiệu thư viện Apache Commons Chain
Java Program to Implement Skip List
Ignore Null Fields with Jackson
Bootstrapping Hibernate 5 with Spring
An Introduction to ThreadLocal in Java
Mệnh đề Switch-case trong java
Java Program to Represent Graph Using Incidence Matrix
HttpClient 4 – Follow Redirects for POST
Java Program to Implement Warshall Algorithm
Generating Random Dates in Java
Spring Boot: Customize Whitelabel Error Page
Queue và PriorityQueue trong Java
So sánh ArrayList và LinkedList trong Java
A Guide to JPA with Spring
Hướng dẫn Java Design Pattern – Strategy
Java Program to Implement Pollard Rho Algorithm
Java Program to Implement Range Tree
Java Program to Find kth Largest Element in a Sequence
Java Program for Topological Sorting in Graphs
Java Program to Implement Meldable Heap
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Java 8 Streams peek() API
Giới thiệu Design Patterns
Phương thức forEach() trong java 8
Java Program for Douglas-Peucker Algorithm Implementation
Java – Convert File to InputStream
Java Program to Implement Sorted Circularly Singly Linked List
Spring Data MongoDB – Indexes, Annotations and Converters
Java Program to Check if a Matrix is Invertible