package com.example.demo.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
/**
* @Author: YafengLiang
* @Description:
* @Date: Created in 9:56 2018/12/20
*/
public class StreamGobbler extends Thread {
InputStream is;
String type;
OutputStream os;
protected static final Logger logger = LoggerFactory.getLogger(StreamGobbler.class);
public StreamGobbler(InputStream is, String type) {
this(is, type, null);
}
StreamGobbler(InputStream is, String type, OutputStream redirect) {
this.is = is;
this.type = type;
this.os = redirect;
}
public void run() {
InputStreamReader isr = null;
BufferedReader br = null;
PrintWriter pw = null;
try {
if (os != null) {
pw = new PrintWriter(os);
}
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
if (pw != null){
pw.println(line);
}
logger.info(type + ">" + line);
}
if (pw != null) {
pw.flush();
}
} catch (IOException ioe) {
logger.error(ioe.getMessage());
ioe.printStackTrace();
} finally {
try {
if (pw != null) {
pw.close();
}
if (br != null) {
br.close();
}
if (isr != null) {
isr.close();
}
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}
}
}