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:
Apache Tiles Integration with Spring MVC
Chuyển đổi Array sang ArrayList và ngược lại
Tính kế thừa (Inheritance) trong java
Adding Parameters to HttpClient Requests
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Encode a String to UTF-8 in Java
Java Program to Implement Sparse Matrix
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Format ZonedDateTime to String
Number Formatting in Java
Refactoring Design Pattern với tính năng mới trong Java 8
Spring Boot Gradle Plugin
Java Program to Implement LinkedBlockingDeque API
Hướng dẫn sử dụng Printing Service trong Java
Extract network card address
Java Program to Implement Min Heap
Java Multi-line String
An Intro to Spring Cloud Contract
Java Program to Implement Repeated Squaring Algorithm
Python String endswith()
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Java Program to Implement Sorted Doubly Linked List
Transaction Propagation and Isolation in Spring @Transactional
Java Program to Implement Rolling Hash
Jackson – Marshall String to JsonNode
Mapping a Dynamic JSON Object with Jackson
Jackson JSON Views
Spring Boot with Multiple SQL Import Files
Getting Started with Custom Deserialization in Jackson
Java Program to Implement Efficient O(log n) Fibonacci generator
Spring Boot - Admin Server
Java Program to Implement Insertion Sort