/***
* 方法:
* @Title: replaceContentToFile
* @Description: TODO
* @param @param path 文件
* @param @param str 开始删除的字符
* @param @param con 追加的文本
* @return void返回类型
* @throws
*/
public static void replaceContentToFile(String path, String str ,String con){
try {
FileReader read = new FileReader(path)
BufferedReader br = new BufferedReader(read)
StringBuilder content = new StringBuilder()
while(br.ready() != false){
content.append(br.readLine())
content.append("\r\n")
}
System.out.println(content.toString())
int dex = content.indexOf(str)
if( dex != -1){
System.out.println(content.substring(dex, content.length()))
content.delete(dex, content.length())
}
content.append(con)
br.close()
read.close()
FileOutputStream fs = new FileOutputStream(path)
fs.write(content.toString().getBytes())
fs.close()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e){
e.printStackTrace()
}
}
JDK提供了一个JarFile类用来处理Jar文件的,不过只提供了读的功能你可以通过如下步骤实现你的目标:
1) 通过JarFile读出Jar包信息。
2) 根据读出的信息将Jar包解压至临时目录。
3) 在临时目录里替换文件。
4) 通过RunTime.exex()执行控制台命令重新生成Jar包
先读取文件内容
通过工具类FileUtils.readFileasString(Filename)存储至变量中filestr
替换变量中的文件内容 filestr.replace(元字符串,替换字符串)
写回源文件修改后的内容
通过工具类FileUtils.writeStringToFile(file, data)
需要导入commons-io的jar包