}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
java 程序调用 输出重定向import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.SequenceInputStream;
public class Processing
{
public static void main(String[] args)
{
try
{
Process process = Runtime.getRuntime().exec("cmd");
SequenceInputStream sis = new SequenceInputStream(process.getInputStream(), process.getErrorStream());
InputStreamReader isr = new InputStreamReader(sis, "GBK");
BufferedReader br = new BufferedReader(isr);
// next command
OutputStreamWriter osw = new OutputStreamWriter(process.getOutputStream());
BufferedWriter bw = new BufferedWriter(osw);
bw.write("cd /d d:/test");
bw.newLine();
bw.write("javac prog1.javajavac.txt");
bw.newLine();
bw.write("java prog1java.txt");
bw.newLine();
bw.flush();
bw.close();
osw.close();
// read
String line = null;
while(null != (line = br.readLine()))
{
System.out.println(line);
}
process.destroy();
br.close();
isr.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Java标准输出重定向到GUI 实现输出从控制台到GUI并不复杂 只需要将标准输出重定向
重定向标准输出很easy System 类里有两个静态方法setErr(PrintStream err) 和 setOut(PrintStream out) 分别用于重定位 标准 错误输出流和 标准 输出流 只需要在程序初始时设置即可
// GUIPrintStream guiPrintStream = new GUIPrintStream(System out jTextArea);
System setErr(guiPrintStream);
System setOut(guiPrintStream);
在上面的代码中 我们发现一个新的类 GUIPrintStream 这是我们为 PrintStream 所做的包装 因为我们的输出目标位置是GUI 所以需要在 PrintStream 上做些文章 大家请看下面 GUIPrintStream 的代码
Java代码
/**//*
* To change this template choose Tools | Templates
* and open the template in the editor
*/
import java io OutputStream;
import java io PrintStream;
import javax swing SwingUtilities;
import javax swing text JTextComponent;
/** *//**
* 输出到文本组件的流
*
* @author Chen Wei
* @website chenwei mobi
* @email chenw
*/
public class GUIPrintStream extends PrintStream {
private JTextComponent ponent;
private StringBuffer *** = new StringBuffer();
public GUIPrintStream(OutputStream out JTextComponent ponent) {
super(out);
ponent = ponent;
}
/** *//**
* 重写write()方法 将输出信息填充到GUI组件
* @param buf
* @param off
* @param len
*/
@Override
public void write(byte[] buf int off int len) {
final String message = new String(buf off len);
SwingUtilities invokeLater(new Runnable() {
public void run() {
*** append(message);
ponent setText( *** toString());
}
});
}
}
/**//*
* To change this template choose Tools | Templates
* and open the template in the editor
*/
import java io OutputStream;
import java io PrintStream;
import javax swing SwingUtilities;
import javax swing text JTextComponent;
/** *//**
* 输出到文本组件的流
*
* @author Chen Wei
* @website chenwei mobi
* @email chenw
*/
public class GUIPrintStream extends PrintStream {
private JTextComponent ponent;
private StringBuffer *** = new StringBuffer();
推荐阅读
- 小学体育课游戏总结反思,小学体育课游戏教学反思
- 包含postgresql递归报错的词条
- pg库修改字段属性,pg修改字段数据类型
- 显卡窗口怎么设置,显卡窗口怎么设置最好
- php注册数据排查错误 php注册表
- 最后一个样式不要css的简单介绍
- wps输出pdf怎么弄,wps怎么输出pdf文件时怎么设置变小
- 荣耀v7适配鸿蒙吗,荣耀7支持鸿蒙吗
- 2020go语言排行 2021年go语言