package org.concord.otrunk.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.zip.GZIPInputStream;
public class StreamUtil
{
public static void printFromStream(String label, InputStream stream)
{
printFromStream(label, stream, null);
}
public static void printFromStream(String label, InputStream stream, String encoding)
{
String message;
try {
message = StreamUtil.getStringFromStream(stream, encoding);
} catch (IOException e) {
message = "Exception getting stream contents: " + e;
}
if (message != null) {
System.err.println("===== " + label + " =====");
System.err.println(message);
System.err.println("=========================");
}
}
public static String getStringFromStream(InputStream stream, String encoding)
throws IOException
{
if (stream == null){
return null;
}
StringWriter sWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(sWriter);
writeFromStream(printWriter, stream, encoding);
sWriter.flush();
return sWriter.toString();
}
public static void writeFromStream(PrintWriter writer, InputStream stream, String encoding)
throws IOException
{
if (stream == null){
return;
}
if (encoding != null && encoding.toLowerCase().equals("gzip")) {
stream = new GZIPInputStream(stream);
}
InputStreamReader _reader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(_reader);
while(true){
String line = reader.readLine();
if(line == null){
break;
}
writer.println(line);
}
}
}