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 Find kth Smallest Element by the Method of Partitioning the Array
Java Program to Implement Disjoint Set Data Structure
Guide to System.gc()
Java Program to Implement EnumMap API
Iterable to Stream in Java
Tính trừu tượng (Abstraction) trong Java
Explain about URL and HTTPS protocol
A Guide to Spring Boot Admin
Java Program to Implement Sieve Of Atkin
Java Program to Implement Variable length array
Introduction to Spring Security Expressions
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Introduction to the Functional Web Framework in Spring 5
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Hướng dẫn sử dụng Java Reflection
Java Program to Implement Binary Tree
Java – InputStream to Reader
So sánh HashMap và Hashtable trong Java
Write/Read cookies using HTTP and Read a file from the internet
Spring Boot - Actuator
Java Program to Perform Quick Sort on Large Number of Elements
Spring Boot - Batch Service
DynamoDB in a Spring Boot Application Using Spring Data
Lớp lồng nhau trong java (Java inner class)
Cơ chế Upcasting và Downcasting trong java
Error Handling for REST with Spring
Spring MVC Async vs Spring WebFlux
Spring Cloud Connectors and Heroku
Java Program to Implement Interval Tree
Interface trong Java 8 – Default method và Static method
Logging in Spring Boot
Exception Handling in Java