FW: 回答:命令行里的读出后显示在SWING容器里

坛子里一位mxx123的兄弟发信问的问题,很对不起我这位论坛好友,有一阵子没上csdn。

想想csdn的大牛平日帮我解决问题的速度,自己很汗颜。

也许mxx123早解决了,但我还是把我的方法写一下,并给mxx123发信表示歉意。

 

我觉得可以分两步走:

1、读命令行,把命令行当做输入流读入

2、显示在SWING容器,可以把输入流输出到一个字符串,然后怎么显示字符串就很好处理了。

 

一下代码经过测试,可以正常运行。

zengzhi.java

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

 

public class zengzhi{

public static void main(String[] args) throws IOException {

//System.in 命令输入

//new InputStreamReader(System.in) 把命令写入输入流

//new BufferedReader(new InputStreamReader(System.in)) //使用缓存

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

String str;

//按行读取,如果命令为exit,退出

while (!(str = in.readLine()).equals("exit")) {

//如果命令不为exit,则赋值给字符春str, 打印str

System.out.println(str);

}

}

}

 

补充下另一种情况:

执行方法的时候,顺便输入一些参数,并把这些参数读出显示

test.java

 

 

import java.io.IOException;

 

public class test{

public static void main(String[] args) throws IOException {

for(String out : args){

System.out.println(out);

}

}

}

 

javac test.java  //编译

java test 参数1 参数2 参数3  //参数之间空格隔开即可

 

====================================================

得到mxx123的回复:

~~~~(>_<)~~~~ 我在“BufferedReader in = new BufferedReader(new InputStreamReader(System.in));”前加了一句“Process process = Runtime.getRuntime().exec("cmd /c ipconfig ");”来执行EXE可执行文件,可是没有任何输出啊,这是咋回事啊? %>_<%

 

因为调用外部方法产生的数据流并没有传回程序,所以没有输出。只需要把调用外部程序的进程的输入流读出来打印即可。

主要是:process.getInputStream();

 

可以执行下面的例子查看结果

 

 

zz.java

 

 

import java.io.BufferedReader;

 

import java.io.IOException;

 

import java.io.InputStreamReader;

 

public class zz {

 

public static void main(String[] args) throws IOException {

 

Process process = Runtime.getRuntime().exec("cmd /c ipconfig ");

 

BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));

 

String str;

 

 

while ((str = in.readLine()) != null) {

 

 

System.out.println(str);

 

}

 

}

 

}

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值