我写了一个C语言程序,现在想用Runtime.exec来执行它,c语言代码如:
mytest.c文件
#include <stdio.h> int main()
{
int i;
scanf("%d",&i);
printf("%d^2=%d",i,i*i);
return 0;
}
这个程序中运行时需要输入数据(scanf("%d",&i);),请问各位用java应该输入才能实现数据的输入和数据的输出拦截。
在这里先谢谢各位了!希望能给小弟一小段代码
import java.io.BufferedInputStream;
import java.io.IOException;
public class ExecLs {
static public void main(String[] args) {
String cmd = "mytest.exe"
try {
Process ps = Runtime.getRuntime().exec(cmd);
/*这里改如何把输入数据??????????*/
System.out.print(loadStream(ps.getInputStream()));
System.err.print(loadStream(ps.getErrorStream()));
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
static String loadStream(InputStream in) throws IOException {
int ptr = 0;
in = new BufferedInputStream(in);
StringBuffer buffer = new StringBuffer();
while( (ptr = in.read()) != -1 ) {
buffer.append((char)ptr);
}
return buffer.toString();
}
}
mytest.c文件
#include <stdio.h> int main()
{
int i;
scanf("%d",&i);
printf("%d^2=%d",i,i*i);
return 0;
}
这个程序中运行时需要输入数据(scanf("%d",&i);),请问各位用java应该输入才能实现数据的输入和数据的输出拦截。
在这里先谢谢各位了!希望能给小弟一小段代码
import java.io.BufferedInputStream;
import java.io.IOException;
public class ExecLs {
static public void main(String[] args) {
String cmd = "mytest.exe"
try {
Process ps = Runtime.getRuntime().exec(cmd);
/*这里改如何把输入数据??????????*/
System.out.print(loadStream(ps.getInputStream()));
System.err.print(loadStream(ps.getErrorStream()));
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
static String loadStream(InputStream in) throws IOException {
int ptr = 0;
in = new BufferedInputStream(in);
StringBuffer buffer = new StringBuffer();
while( (ptr = in.read()) != -1 ) {
buffer.append((char)ptr);
}
return buffer.toString();
}
}
解决方案 »
- java怎么打开网站
- java 应用程序打包jar问题
- 有关lo44j的问题,请高手帮忙
- 救命呀!我的Myeclipse
- 哪位能详细介绍一下连接池技术。
- JDBC: 结果集更新的问题,帮忙!
- int[] a2 = new int[10]; Arrays.fill(a1, 47); 数组a2的所有元素都引用一个对象 "47"; 还是有10个"47"对象一一对应a2中的每个元素
- 请教一个相当简单的问题,希望各位能帮忙一下。.
- 求大神帮写一段正则表达式,实在些不明白了!
- 测试一下HashSet类中对象无序无重复的问题,当我打印输出的时候发现输出居然有序,请问,哪里出了问题?
- 请教:JDBC如何得到数据库列的类型
- linux下安装j2sdk-1_4_2_12-linux-i586.bin,出现can't find /usr/bin/sum to do checksum
这里的cmd里面可以包括参数的, 无非就是命令行中加上参数.
比如:
ping www.google.com
其中'www.google.com' 就是参数.