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 Sort an Array of 10 Elements Using Heap Sort Algorithm
Implementing a Runnable vs Extending a Thread
Hướng dẫn Java Design Pattern – State
Python String rfind()
Java Program to Implement Dijkstra’s Algorithm using Queue
Vector trong Java
Giới thiệu về Stream API trong Java 8
A Guide to System.exit()
Map to String Conversion in Java
Java – Write to File
Xử lý ngoại lệ đối với trường hợp ghi đè phương thức trong java
Java Program to Implement Miller Rabin Primality Test Algorithm
New in Spring Security OAuth2 – Verify Claims
Java Program to Implement Floyd Cycle Algorithm
An Intro to Spring Cloud Contract
Java 8 and Infinite Streams
Java Program to Implement Sorted Circularly Singly Linked List
Checking for Empty or Blank Strings in Java
Java Program to Implement Suffix Array
Spring Boot - Building RESTful Web Services
HashMap trong Java hoạt động như thế nào?
Immutable ArrayList in Java
Getting the Size of an Iterable in Java
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Tạo số và chuỗi ngẫu nhiên trong Java
Spring Data JPA Delete and Relationships
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Java Program to Implement Shell Sort
Java Program to Implement Hash Tables with Double Hashing
Function trong Java 8
Java Program to Represent Linear Equations in Matrix Form
Introduction to Liquibase Rollback