麻烦进来帮我一下~~谢啦!!! 我想写一个批处理文件,想用java定义一个(abc.bat)的文件,然后想把一些批处理命令写入文件中,然后保存,可是我不知道用java怎么实现。刚刚学java,很多地方不清楚,麻烦告知一下,谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 bat 文件其实就是文本文件,用 FileWriter 写入就可以了。详情参考 JDK 文档。 Runtime rn=Runtime.getRuntime(); Process p=null; try{ FileWriter writer = new FileWriter(pathDoc + "open.bat"); writer.write("@echo off"); writer.write("\r\n"); writer.write("winword \"" + pathDoc +table.getValueAt(row,0) + "\""); writer.write("\r\n"); writer.write("@echo on"); writer.close(); p=rn.exec("cmd /C " +pathDoc+"open.bat"); }catch(Exception e1){ //System.out.println("cmd /c start winword \"" + pathDoc +docList.getSelectedValue().toString()+"\""); } //pathDoc 是文件目录,你可以直接赋c:\供你参考 谢谢楼上几位对我的帮助,现在关于文件写入的写法大概知道了一下,可是还有个问题要麻烦你们一下:我希望通过遍历文件夹获取文件夹中的html文件,然后读取每一个html文件后,往那个批处理文件中写入一个语句,比如"tidy -gb2312 -asxml -output"+files+"<"+files+">"可是我不知道在哪个地方写入这个语句比较好,现在的写法出现的问题是,每次写入都会把之前的写入覆盖掉。public class Tidy{ public void traverseFolder(File folder, File root, String indent, StringBuffer buf) { File[] folders = folder.listFiles(new FileFilter() { public boolean accept(File pathname) { if (pathname.isDirectory()) { String name = pathname.getName().toLowerCase(); if ("images".equals(name) || "xsl".equals(name)|| "image".equals(name) || "css".equals(name)) { return false; } return true; } return false; } }); if (folders != null) { folders = new FileUtils().sort(folders); for (int i = 0; i < folders.length; i++) { traverseFolder(folders[i], root, indent + "\t", buf); } } File[] htmFile = FileUtils.getHTMFiles(folder); } } public class FileUtils { public static File[] getHTMFiles(File folder) throws IOException{ FileWriter tidy=new FileWriter("tidy.bat", true); try{ File[] files = folder.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { String lowercaseName = name.toLowerCase(); if (lowercaseName.endsWith(".htm") || lowercaseName.endsWith(".html")){ return true; } return false; } }); if (files != null && files.length >= 1) { for(int i=0;i<files.length;i++){ tidy.write("tidy -gb2312 -asxml -output "+files[i]+" <"+files[i]+">\n"); } tidy.close(); } return null; } catch (IOException e) { e.printStackTrace(); } return null;}这么写的结果是提示 Unhandled exception type IOException还有,应该把bat文件的写入写到什么地方才能正确的往tidy.bat文件里写入命令呢?BTW:帖子实在太长,累着大家眼了,实在是不好意思。:( 赞同 john_sheep(彩虹勇士(求求你们,把贴子结了吧.)) Java移位操作遇到的问题? 如何让JInternalFrame 显示出来? 请教大家一个java串口收发短信的问题。 HttpServletRequest类有些什么方法啊? 关于 手机垃圾信息屏蔽软件设计 字符转换成日期怎么解决? main()的字符串数组参数~ 帮忙看看什么回事! java里如何读写配置文件 ????????请大家看一看这段代码,出现异常了??????????? 好人进来帮帮忙~~~ 一故障在手, 急!!! 各位达人速速帮助一下, 在线等待 ing !!!!
Process p=null;
try{
FileWriter writer = new FileWriter(pathDoc + "open.bat");
writer.write("@echo off");
writer.write("\r\n");
writer.write("winword \"" + pathDoc +table.getValueAt(row,0) + "\"");
writer.write("\r\n");
writer.write("@echo on");
writer.close();
p=rn.exec("cmd /C " +pathDoc+"open.bat");
}catch(Exception e1){
//System.out.println("cmd /c start winword \"" + pathDoc +docList.getSelectedValue().toString()+"\"");
} //pathDoc 是文件目录,你可以直接赋c:\
供你参考
我希望通过遍历文件夹获取文件夹中的html文件,然后读取每一个html文件后,往那个批处理文件中写入一个语句,比如"tidy -gb2312 -asxml -output"+files+"<"+files+">"
可是我不知道在哪个地方写入这个语句比较好,现在的写法出现的问题是,每次写入都会把之前的写入覆盖掉。
public class Tidy{
public void traverseFolder(File folder, File root, String indent, StringBuffer buf) {
File[] folders = folder.listFiles(new FileFilter() { public boolean accept(File pathname) {
if (pathname.isDirectory()) {
String name = pathname.getName().toLowerCase();
if ("images".equals(name) || "xsl".equals(name)|| "image".equals(name) || "css".equals(name)) {
return false;
}
return true;
}
return false;
}
});
if (folders != null) {
folders = new FileUtils().sort(folders);
for (int i = 0; i < folders.length; i++) {
traverseFolder(folders[i], root, indent + "\t", buf);
}
}
File[] htmFile = FileUtils.getHTMFiles(folder);
}
} public class FileUtils { public static File[] getHTMFiles(File folder) throws IOException{
FileWriter tidy=new FileWriter("tidy.bat", true);
try{
File[] files = folder.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
String lowercaseName = name.toLowerCase();
if (lowercaseName.endsWith(".htm") || lowercaseName.endsWith(".html")){
return true;
}
return false;
}
});
if (files != null && files.length >= 1) {
for(int i=0;i<files.length;i++){
tidy.write("tidy -gb2312 -asxml -output "+files[i]+" <"+files[i]+">\n");
}
tidy.close();
}
return null;
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}这么写的结果是提示 Unhandled exception type IOException
还有,应该把bat文件的写入写到什么地方才能正确的往tidy.bat文件里写入命令呢?
BTW:帖子实在太长,累着大家眼了,实在是不好意思。:(