遍历文件夹中的文件 对话框选择文件 案例 制作chm文件时用的一个小程序(一)

2014-11-24 08:39:15 · 作者: · 浏览: 0
//遍历文件夹进行替换
package com.mengdian.findandreplace.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class FindAndReplaceService {
/**
*
* @param file
* 需要进行替换的文件或文件夹递归替换
* @return
* @throws Exception
*/
public static boolean replace(File file) throws Exception {
if (file.isDirectory()) {// 如果是目录则得到他的子文件进行替换操作
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
replace(files[i]);
}
return false;
} else {
searchAndReplace(file);
return true;
}
}
/**
*
* @param file要替换的目标文件
* @return
* @throws Exception
*/
public static boolean searchAndReplace(File file) throws Exception{
String fileName = file.getName();
//只需要对. html后缀的文件进行操作,不是.html的文件则直接跳出
if(!fileName.contains(".html")){
return true;
}
// if(fileName.contains(".jpg")||fileName.contains(".png")||fileName.contains(".gif")){
// return false;
// }
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"gb2312"));
StringBuffer sb = new StringBuffer();
String str = null;
while(null != (str = br.readLine())){
sb.append(str);
}
String des = sb.toString();
//追加让html不能右键不能复制的功能
des = des.replace("", "");
des = des.replace("", "");
//给body加上距顶和距左边距
des = des.replace("leftMargin=0", "leftMargin=10");
des = des.replace("topMargin=0", "topMargin=10");
des = des.replace("DLICS27.100

P61

备案号:J1952002

", "");
// System.out.println(des);
String result1 = des.replace("http://www.Word2ChmOnline.com","");
String result_des = result1.replace("此文档由DeBin软件生成。", "");
String result_des2 = result_des.replace("详情请参见系统查阅标准模块", "详情请参见系统查阅标准模块");
result_des2 = result_des2.replace("请参考系统查阅标准", "详情请参见系统查阅标准模块");
result_des2 = result_des2.replace("请参考系统查阅标准", "详情请参见系统查阅标准模块");
result_des2 = result_des2.replace("请参考系统查阅标准", "详情请参见系统查阅标准模块");
result_des2 = result_des2.replace("详情请参见系统查阅标准模块", "详情请参见系统查阅标准模块");
result_des2 = result_des2.replace("详情请参见系统查阅标准模块","详情请参见系统查阅标准模块");
//替换文件中的@符号为""
result_des2 = result_des2.replaceAll("[@]", "");
br.close();
String filePath = file.getAbsolutePath();
filePath = filePath.replaceAll("[@]", "");
File file2 = new File(filePath);
file.renameTo(file2);
FileOutputStream fos = new FileOutputStream(file2);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(fos, "gb2312"));
pw.write(result_des2);
pw.close();
fos.close();
return true;
}
/**
* 对视图层关闭按钮的处理
* @param frame
*/
public void exit(JFrame fra