JSP调用DOS命令!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:02:42
请教JSP调用DOS命令的写法!!!!
我这样写是错误的!!

File fr=new File(file1);
File fw=new File(file2);
Process p = Runtime.getRuntime().exec("cmd /c dumpmta "D:\\test\\000009d1.mta" 1 start 1 end 0");
BufferedReader reader = null;
BufferedWriter bw=null;
reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
bw = new BufferedWriter(new FileWriter(fw));
String tempString = null;
tempString=reader.readLine();
while (tempString!= null){
String temp1 = tempString;
while (temp1 !=null){
tempString=reader.readLine();
if((tempString.toString()).indexOf(file3)!=-1){
bw.write(temp1);
tempString=reader.readLine();
break;
}else{
temp1 += tempString+"\r\n";
continue;
}
}
p.waitFor();
}
reader.close();

"dumpmta"为我的一个程序,用来汇出一个文件的内容
那是不是说要等
bw.close();
reader.close();
之后才能

那试试看"dumpmta \"D:\\test\\000009d1.mta\" 1 start 1 end 0"

bw 和reader 要在 p.waitFor()之前调用其close()方法。 而且不推荐对p.getInputStream()使用buffer,因为可能造成堵塞。

补充:嗯,要在close之后才能waitFor,不然数据没刷新到底层去的话那waitFor就一直这么等下去了。。而buffer的话只是对于p.getInputStream()来说的,因为buffer会预读一定字节的数据,而这个时候如果你的dumpmta没有达到buffer预读的数据时,buffer就会等下去了。。就跟对socket进行了buffer一样。。

路径问题吧