我想用java写一个bat文件,代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Batwrite{
static void WriteFile(String bat){
try{
File FileName=new File("f://bat//b.bat");
FileOutputStream fileOut=new FileOutputStream(FileName);
DataOutputStream fou=new DataOutputStream(fileOut);
fou.writeChars(bat);
fou.close();
}catch(IOException e){
System.out.println("文件错误");
}
}
public static void main(String args[]){
String str="ping 192.168.0.1 >f:/bat/b.txt";
WriteFile(str);
try {
String command = "cmd.exe /c"+"start /min f:\\bat//b.bat";
Process child =
Runtime.getRuntime().exec(command);
} catch (IOException e){
System.out.println("文件错误");
}
}
}
程序可以编译运行,在f:\bat\下面也生成了一个b.bat文件,可以并没有生成b.txt文件,直接运行b.bat也没有反应,选择编辑后,发现b.bat里面的内容为:
“p i n g 1 9 2 . 1 6 8 . 0 . 1 > f : / b a t / b . t x t”
每一个字符后面都加了一个空格,所以就不能被执行。请问大家应该怎么写这个程序才能正确的执行呢?
參考答案:DataOutputStream 的对象fou输出流用错了方法,fou.writeChars(bat)改用fou.writeBytes(bat);
正常,测试通过