直接上代码吧,
这是我准备写小工具用的代码......自己目前对java也是一知半解,C++/C做得比较多。
其实,重要的是思路,说实话,JAVA,C/C++/,PERL这些都只是一些工具,
不过尺有所短,寸有所长,只是在不同的环境下,不同的工具效率不一样。。
就像打游戏,不同的副本,可能要穿不同的装备。。。就是这个道理。。
下面就是代码了。。。
//TestPanel.java
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class TestPanel {
public static Frame jf;
public static BufferedReader inp;
public static BufferedWriter out;
public static void main(String[] args) {
Frame f = new Frame("Java Frame with Panle");
String cmd = "ping 8.8.8.8 -t";
jf = new Frame("test pipe and ");
TextArea jta = new TextArea();
jf.add(jta);
jf.setSize(500, 500);
jf.setVisible(true);
jta.setText("test\n");
jta.setEditable(false);
jf.addWindowListener(new WindowAdapter() // 为了关闭窗口
{
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
try {
Process p = Runtime.getRuntime().exec(cmd);
inp = new BufferedReader(new InputStreamReader(p.getInputStream()));
out = new BufferedWriter(
new OutputStreamWriter(p.getOutputStream()));
String lineStr;
while ((lineStr = inp.readLine()) != null) {
// 获得命令执行后在控制台的输出信息
System.out.println(lineStr);// 打印输出信息
jta.append(lineStr+"\n");
}
// for (int i = 0; i < 100; i++) {
// jta.setText(jta.getText() + "hello" + i + "\n");
// jta.setCaretPosition(jta.getText().length());
// }
// jta.append("hello"+i+"\n"); //这样方式只需要一行代码
//检查命令是否执行失败。
if (p.waitFor() != 0) {
if (p.exitValue() != 0)//p.exitValue()==0表示正常结束,1:非正常结束
System.err.println("命令执行失败!");
}
inp.close();
out.close();
} catch (Exception err) {
err.printStackTrace();
}
}
}