/**
* 用于处理Runtime.getRuntime().exec产生的错误流及输出流
*/
public class StreamGobbler extends Thread {
private static final Logger LOGGER = LoggerFactory.getLogger(StreamGobbler.class);
InputStream is;
String type;
OutputStream os;
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,"GBK");
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) {
ioe.printStackTrace();
} finally{
try {
pw.close();
br.close();
isr.close();
} catch (IOException e) {
}
}
}
}
在java程序中调用批处理防止执行世界过长卡死的工具类
最新推荐文章于 2024-07-24 17:27:32 发布