How do I convert InputStream to String?
Date: 2010-09-16. Category: Java I/O examples. Hits: 588K time(s).
This example will show you how to convert an InputStream to String. In the code snippet below we read a data.txt file, could be from common folder or from inside a jar file.
package org.kodejava.example.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;
import java.io.Reader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class StreamToString {
public static void main(String[] args) throws Exception {
StreamToString sts = new StreamToString();
//
// Get input stream of our data file. This file can be in
// the root of you application folder or inside a jar file
// if the program is packed as a jar.
//
InputStream is =
sts.getClass().getResourceAsStream("/data.txt");
//
// Call the method to convert the stream to string
//
System.out.println(sts.convertStreamToString(is));
}
public String convertStreamToString(InputStream is)
throws IOException {
//
// To convert the InputStream to String we use the
// Reader.read(char[] buffer) method. We iterate until the
// Reader return -1 which means there's no more data to
// read. We use the StringWriter class to produce the string.
//
if (is != null) {
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(
new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
return writer.toString();
} else {
return "";
}
}
}