实例程序:
package com.solid.fileoper;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
/**
* 对某个目录下的html文件进行遍历,然后替换html文件中的源代码,然后保存修改之后的文件。
* @author solidwang
*
*/
public class FileReplace {
private String sourceStr1 = "/hqapp/tcm/3/attachments/paper";
private String replaceStr1 = "www.hq.unicom.local/tcm_unicom/tcm_unicom/3/attachments/paper";
private String sourceStr2 = "http://www.unicom.local/tcm/3/ewebeditor/uploadfile";
private String replaceStr2 = "http://www.unicom.local/tcm_unicom/3/ewebeditor/uploadfile";
private String sourceStr3 = "http://www.unicom.local/tcm/ewebeditor/uploadfile";
private String replaceStr3 = "http://www.unicom.local/tcm_unicom/3/ewebeditor/uploadfile";
/**
* 修改目录下的.html文件
* @param filePath 读取文件路径
* @param prefix 文件前缀
* @param savePath 文件保存路径
*/
public void modifyFileInDirectory(String filePath, String savePath, String prefix) {
List list = readFileInDirectory(filePath, prefix);
try {
for(int i=0; i<list.size(); i++) {
readFile(filePath + list.get(i), savePath + list.get(i));
System.out.println("读取了第" + (i+1) + "个文件,文件路径:" + filePath + list.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 读取文件并替换其中的路径,然后保存文件
* @param filePath 读取文件路径
* @param savePath 保存文件路径
*/
public void readFile(String filePath, String savePath) {
BufferedReader br = null;
BufferedWriter bw = null;
String content = "";
try {
br = new BufferedReader(new FileReader(filePath));
bw = new BufferedWriter(new FileWriter(savePath));
String line;
while((line = br.readLine()) != null && (line != "")) {
content = line + br.readLine() + "\n";
bw.write(content.replaceAll(sourceStr1, replaceStr1).replaceAll(sourceStr2, replaceStr2).replaceAll(sourceStr3, replaceStr3).replaceAll("null", ""));
}
bw.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(br != null) br.close();
if(bw != null) bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 遍历某目录下的所有.html文件
* @param filePath
* @param prefix
* @return html文件名数组
*/
public List readFileInDirectory(String filePath, String prefix) {
File fileDir = new File(filePath);
File[] files = fileDir.listFiles();
List list = new ArrayList();
for(int i=0; i<files.length; i++) {
if(files[i].getName().startsWith("preview")) {
list.add(files[i].getName());
}
}
return list;
}
/**
* 测试方法
*/
public static void main(String[] args) {
FileReplace readFile = new FileReplace();
readFile.modifyFileInDirectory("D:/backup/中国联通V1.0/3/papers/", "D:/test/3/papers/", ".html");
}
}
分享到:
相关推荐
4. `FileHandler.java`: 文件操作类,负责与磁盘上的数据交互,可能实现了序列化和反序列化来保存和加载记录。 5. `UserInput.java`: 处理用户输入的类,负责从控制台获取输入并转化为内部数据结构。 6. `Resources`...
【JAVA万能日历记事本】是一款基于Java编程语言开发的应用程序,它结合了日历功能和记事本的特点,旨在提供一个高效、实用的个人信息管理工具。这款软件允许用户在日历视图中记录并管理日常事务,无论是工作计划、待...
在这个“Java写的个人日记系统”中,开发者利用Java的强大功能创建了一个简单但实用的日记应用程序,该程序可在控制台中运行,为用户提供记录日常生活琐事的便利。 1. **基础架构** - **Java Standard Edition ...
2. **理解模块结构**:查看项目目录结构,了解各个类和文件的作用。 3. **深入游戏逻辑**:定位游戏的核心类,理解游戏的运行机制。 4. **研究事件处理**:查找事件监听和处理的代码,了解用户交互的实现。 5. **...
- **文件操作**:游戏进度(分数、生命值)可能被保存在本地文件中,Java的File和Scanner/PrintWriter类可以实现这一功能。 - **序列化**:为了持久化对象状态,可能会使用Java的序列化机制。 4. **游戏逻辑**: ...
在计算机上安装Java开发工具包(JDK)后,通常需要手动设置系统环境变量,如`JAVA_HOME`、`PATH`和`CLASSPATH`,以便操作系统能够正确识别和执行Java相关程序。这个合集简化了这一过程,使得不熟悉技术的小白用户也...
HEX文件通常用于存储编程中的数据或者调试信息,而BIN文件则通常代表纯二进制数据,可以直接被硬件系统执行或读取。在某些场景下,如嵌入式系统开发、固件更新或编程项目中,可能需要将HEX文件转换为BIN文件,以便更...
在Android平台上,开发一款备忘录应用是一种常见的实践,它能帮助用户记录日常生活中的琐事、想法或工作事项。这份“Android源码——备忘录源码.zip”压缩包很可能包含了一个完整的备忘录应用的源代码,对于学习...
大家都知道,通常Java程序需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java...
在这个名为"一个java程序员的个人博客.zip"的压缩包中,我们可以期待找到一个Java程序员的个人博客内容,其中涵盖了他在学习过程中的体验、生活琐事的分享,以及关于Java技术的专业知识和源码分析。虽然没有具体的...
"桌面日历秀——绿色中文版"是一款专为中国用户设计的桌面日历应用程序,它以其简洁易用的界面和丰富的功能赢得了用户的喜爱。这款软件的特点是"绿色",这意味着它无需安装,用户只需下载并解压缩文件即可直接使用,...
这个项目涉及到用户登录注册、新闻管理(类别添加和发布)、文件上传等功能,覆盖了Web应用开发的多个方面。 5. **技术整合**:学生逐步学习并整合了Hibernate、Spring和Struts,形成了SSH集成,这使得他们能够开发...
可进行文件的打开、保存、另存为和关闭;可进行简单的复制、粘贴、剪切。这是一个简单的文字编辑器,日常生活的大小琐事记录上面,工作行程安排,可当做笔记本使用。界面为纯白色。关键字:java记事本,记事本类,...
3. **文件替换**:一旦有了新版本,`ChangeNiFiNarVersion.java`将修改`pom.xml`文件中的版本信息。这个过程需要确保不破坏XML文件的结构,并且要备份原始文件以防万一。 4. **版本校验**:在更新版本后,程序可能...
【七个好习惯——意愿强化培训】是一门针对个人发展和提升效率的技术培训课程,旨在帮助学员形成积极的习惯,从而在工作、生活、学习等各个方面取得更好的成果。这七个习惯不仅适用于个人,同样适用于团队和组织,是...
【Java与Twitter的关联】 Java在本文中并不是作为编程语言被直接...微博客和社交网络分析的研究为理解用户行为、社区形成和信息传播提供了新的视角,而这些研究背后的工具和技术往往离不开Java这样的编程语言支持。
字符串替换模式则允许用户快速统一文件名中的特定字符串,方便文件的归类和查找;添加前缀或后缀功能,则能够帮助用户在文件名中快速添加必要的标识,以便于区分不同的文件类型或版本;而改变文件扩展名模式,则适用...
例如,可能存在一个Note类,封装了便签的文本、创建日期等属性,以及保存和加载的方法。此外,主程序可能使用Form类来管理界面,用Module来处理通用功能,如文件操作。 在实际应用中,VB6便签小程序可能采用了文本...
本资料《时间管理——K篇.ppt》深入探讨了时间管理的重要性、概念、原则以及实用方法。 首先,时间的价值是无法估量的。时间既是最长的,也是最短的,对等待和享乐的人来说,时间的感受截然不同。时间的流逝是无情...
在实际操作中,时间管理常见的一些问题包括:记忆力不佳导致重复工作,未能达成每日设定的目标,过多的时间消耗在琐事上,缺乏系统性的行动计划,找不到重要文件,以及物品乱放导致的寻找时间浪费。为了解决这些问题...