This example will show you how to convert an InputStream
into String
. In the code snippet below we read a data.txt
file, could be from common directory or from inside a jar file.
package org.kodejava.io;
import java.io.*;
import java.nio.charset.StandardCharsets;
public class StreamToString {
public static void main(String[] args) throws Exception {
StreamToString demo = new StreamToString();
// Get input stream of our data file. This file can be in
// the root of your application folder or inside a jar file
// if the program is packed as a jar.
InputStream is = demo.getClass().getResourceAsStream("/student.csv");
// Call the method to convert the stream to string
System.out.println(demo.convertStreamToString(is));
}
private String convertStreamToString(InputStream stream) 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 (stream != null) {
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try (stream) {
Reader reader = new BufferedReader(new InputStreamReader(stream,
StandardCharsets.UTF_8));
int length;
while ((length = reader.read(buffer)) != -1) {
writer.write(buffer, 0, length);
}
}
return writer.toString();
}
return "";
}
}