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:
So sánh HashMap và Hashtable trong Java
LIKE Queries in Spring JPA Repositories
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Python String isdigit()
Spring Boot - Batch Service
Lập trình đa luồng với CompletableFuture trong Java 8
@Lookup Annotation in Spring
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Java Program to Implement Binomial Heap
Spring WebClient Filters
Java Program to Describe the Representation of Graph using Incidence List
Testing in Spring Boot
Working with Kotlin and JPA
String Hashing
Using Spring ResponseEntity to Manipulate the HTTP Response
Retrieve User Information in Spring Security
Java CyclicBarrier vs CountDownLatch
Converting a List to String in Java
A Guide to Apache Commons Collections CollectionUtils
Receive email by java client
Hướng dẫn sử dụng String Format trong Java
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
Spring Boot Integration Testing with Embedded MongoDB
Java Program to Implement Suffix Tree
Giới thiệu Json Web Token (JWT)
Java Program to Find kth Largest Element in a Sequence
Java Program to Implement Range Tree
Creating a Web Application with Spring 5
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
A Guide to the ViewResolver in Spring MVC
Introduction to Project Reactor Bus