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(); } } } }