项目需求,发布war包时,需用界面来修改war包中的配置文件,就不用手动配置了。发布war包(将war包解压,查询指定的配置文件,获取配置文件目录,修改配置文件后,再打压成war包上传到发布目录即可),代码省略此处。
修改配置文件有两种方法:
第一种:通过读写文件来修改配置文件中的值,该方法可以保持配置文件原始的格式和注释存在。推荐该方法:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Map;
public class PropertiseUtil {
/**
* 更新properties文件
*/
public static boolean updateProperties(Map<String, String> map,String url) {
try {
readFile02(map,url);
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
private static void readFile02(Map<String,String> map,String url) throws IOException {
FileInputStream fis=new FileInputStream(url);
InputStreamReader isr=new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line="";
StringBuffer sb = new StringBuffer("");
while ((line=br.readLine())!=null) {
String a = "";
String b = "";
// System.out.println(line);
boolean mm = line.contains("#");
if("".equals(line)||mm){
sb.append(line+"\n");
}else{
a = line.split("=")[0].trim();
b = line.split("=")[1].trim();
if(map.containsKey(a)){
b = map.get(a);
}
sb.append(a+"="+b+"\n");
}
}
// System.out.println(sb.toString());
br.close();
isr.close();
fis.close();
writeFile(sb.toString(),url);
}
private static void writeFile(String properties,String url) throws IOException {
//写入中文字符时解决中文乱码问题
FileOutputStream fos=new FileOutputStream(new File(url));
OutputStreamWriter osw=new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw=new BufferedWriter(osw);
bw.write(properties);
//注意关闭的先后顺序,先打开的后关闭,后打开的先关闭
bw.close();
osw.close();
fos.close();
}
}
第二种:利用Properties对象来修改配置文件,根据setProperty(key,value)方法修改配置文件,key相同则修改,不同则新增。此方法有弊端,就是配置文件中的注释不会写入进去,而且每执行一次,配置文件就会新增。此方法不推荐。
Map<String, String> map = getBeanFieldsMap(provo, unwarproPath); //获取需修改的
Properties prop = new Properties();
try {
File file = new File(unwarproPath);
if (!file.exists())
return false;
InputStream fis = new FileInputStream(file);
prop.load(fis);
//一定要在修改值之前关闭fis
fis.close();
OutputStream fos = new FileOutputStream(unwarproPath);
for(java.util.Map.Entry<String, String> entry:map.entrySet()){
String key = entry.getKey();
String value = entry.getValue();
prop.setProperty(key, value);
//保存,并加入注释
prop.store(fos, "update '" + key + "' value 修改数据");
}
fos.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
相关推荐
本文将详细讲解如何在Winform中读取和修改配置文件,特别是`appSettings`部分,这对于大多数桌面应用来说是至关重要的功能。 配置文件在.NET Framework中通常以`.config`为扩展名,例如`app.config`或`web.config`...
本文将深入探讨如何在C#中获取和修改配置文件信息,特别是appSettings部分,这是.NET应用程序最常用的配置存储区域。 配置文件通常以XML格式存在,其基本结构包括`<configuration>`、`<appSettings>`等节点。`...
本文将深入探讨如何在Java中实现动态修改配置文件,同时解决中文字符编码问题,使得配置文件的读写更加高效和便捷。 首先,我们需要理解Java中的Properties类,它是处理配置文件的标准工具。`java.util.Properties`...
- 如果修改的是应用程序配置文件,用户可能需要重新启动应用程序以看到更改。 - 对于用户配置文件,更改会立即生效,因为它们是为当前用户创建的。 通过以上讨论,我们可以看到,使用C# WinForm修改配置文件涉及...
批处理修改配置文件 server.xml cscript -nologo -e:jscript
《KLD_配置文件解析修改器》是一款专为凯立德2011版导航软件设计的工具,其主要功能是对NaviConfig.dll配置文件进行解析和修改,以实现对导航系统的个性化定制。这款修改器是针对凯立德地图用户的一份强大辅助工具,...
在C#编程中,配置文件是一个非常重要的组成部分,它允许开发者在不修改代码的情况下更改应用程序的行为。本篇文章将深入探讨如何使用C#通过配置文件读取数据库连接字符串和其他配置值,以及这样做的好处。 首先,...
4. 错误处理:如果修改后程序运行不正常,可能是因为配置文件格式错误或使用了无效的设置值,此时需要检查并修正错误。 5. 版本更新:软件开发者可能会发布新版本的修改器,以修复已知问题或增加新功能,及时更新...
对于控制台应用程序,配置文件操作通常涉及到读取、写入或修改这些文件中的数据。在这个场景下,我们讨论的是一个名为“配置文件操作模块”的工具,它专门用于在控制台环境中处理配置文件。这个模块提供了四个参数:...
在Android开发中,读写配置文件是常见的任务,主要用于存储应用程序的设置、用户偏好或者其他持久化数据。配置文件通常以XML或JSON格式存在,因为它们结构清晰,易于解析。本实例将详细介绍如何在Android中进行读取...
在本场景中,我们关注的是如何使用C#来修改XML配置文件,特别是在C盘特定目录下的文件。由于这些配置文件可能在调试环境中不可见,但在软件打包后能够看到其效果,这通常涉及到文件的读取、修改和保存操作,以及发布...
在.NET框架中,C#应用程序通常使用配置文件来存储运行时可更改的设置,如连接字符串、API密钥或其他敏感信息。配置文件分为两种主要类型:`app.config`(对于控制台应用程序和类库)和`Web.config`(用于ASP.NET Web...
在软件开发过程中,为了增强应用程序的可维护性和灵活性,通常会将数据库连接字符串等敏感信息或频繁更改的信息存储在配置文件中,而不是硬编码到代码里。这不仅可以提高安全性,还便于在不修改代码的情况下更新配置...
在Java开发过程中,特别是在使用ORM框架如Hibernate时,开发者经常需要对配置文件中的数据库连接信息进行动态修改或加密处理。本文将详细介绍如何利用反射机制来修改已经加载到内存中的`hibernate.cfg.xml`配置文件...
在`ksh`脚本中,修改配置文件通常涉及以下几个步骤: 1. **打开文件**:使用`>`、`>>`或`操作符来读取、追加或重定向文件。例如,`cat > config.txt`会清空`config.txt`并等待用户输入,而`echo "value" >> config....
在实际项目中,可能需要在程序启动时自动加载配置文件,或者在用户更改设置后保存新的配置。这可以通过事件结构实现,如程序初始化时触发的"Program Start"事件中读取配置,而在用户按下“保存”按钮时触发的用户...
在实际应用中,这样的配置文件操作类可以大大提高代码的可维护性和复用性。开发者可以通过简单的API调用来读取或修改配置,而无需关心底层的文件解析细节。同时,封装类还可以扩展支持其他格式的配置文件,如`.json`...
本项目以"启动配置文件中的程序"为主题,提供了一个源码示例,旨在帮助我们理解如何通过配置文件来启动程序。 首先,我们需要了解配置文件的基本结构。配置文件通常包含键值对,其中键是变量名,值是变量的设定值。...
在Linux系统中,C语言作为底层编程的主要工具,其对配置文件的操作往往涉及到繁琐的文件I/O操作。然而,为了简化这一过程,开发者通常会利用特定的库来处理配置文件,比如读取、写入、解析键值对等。本文将深入探讨...
这些配置信息通常存储在配置文件中,便于程序运行时动态加载和修改。C#提供了一种简单有效的方法来操作配置文件中的属性(Properties),即通过`System.Configuration`命名空间下的`ConfigurationManager`类以及`...