package com.cmccsi.framework.util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Map.Entry;
/**
* 对属性文件操作的工具类
* 获取,新增,修改
* 注意: 以下方法读取属性文件会缓存问题,在修改属性文件时,不起作用,
* InputStream in = PropertiesUtils.class.getResourceAsStream("/config.properties");
* 解决办法:
* String savePath = PropertiesUtils.class.getResource("/config.properties").getPath();
*/
public class PropertiesUtils {
/**
* 获取属性文件的数据 根据key获取值
* @param fileName 文件名 (注意:加载的是src下的文件,如果在某个包下.请把包名加上)
* @param key
* @return
*/
public static String findPropertiesKey(String key) {
try {
Properties prop = getProperties();
return prop.getProperty(key);
} catch (Exception e) {
return "";
}
}
public static void main(String[] args) {
Properties prop = new Properties();
InputStream in = PropertiesUtils.class
.getResourceAsStream("/config.properties");
try {
prop.load(in);
Iterator<Entry<Object, Object>> itr = prop.entrySet().iterator();
while (itr.hasNext()) {
Entry<Object, Object> e = (Entry<Object, Object>) itr.next();
System.err.println((e.getKey().toString() + "" + e.getValue()
.toString()));
}
} catch (Exception e) {
}
}
/**
* 返回 Properties
* @param fileName 文件名 (注意:加载的是src下的文件,如果在某个包下.请把包名加上)
* @param
* @return
* @throws UnsupportedEncodingException
*/
public static Properties getProperties() throws UnsupportedEncodingException{
Properties prop = new Properties();
String savePath = PropertiesUtils.class.getResource("/config.properties").getPath();
savePath= java.net.URLDecoder.decode(savePath,"utf-8");
//以下方法读取属性文件会缓存问题
// InputStream in = PropertiesUtils.class
// .getResourceAsStream("/config.properties");
try {
InputStream in =new BufferedInputStream(new FileInputStream(savePath));
//InputStream in = PropertiesUtils.class.getResourceAsStream("/config.properties");
prop.load(in);
} catch (Exception e) {
return null;
}
return prop;
}
public static Properties getjdbcProperties() throws UnsupportedEncodingException{
Properties prop = new Properties();
String savePath = PropertiesUtils.class.getResource("/jdbc.properties").getPath();
savePath= java.net.URLDecoder.decode(savePath,"utf-8");
//以下方法读取属性文件会缓存问题
// InputStream in = PropertiesUtils.class
// .getResourceAsStream("/config.properties");
try {
InputStream in =new BufferedInputStream(new FileInputStream(savePath));
//InputStream in =PropertiesUtils.class.getResourceAsStream("/jdbc.properties");
prop.load(in);
in.close();
} catch (Exception e) {
return null;
}
return prop;
}
/**
* 写入properties信息
*
* @param key
* 名称
* @param value
* 值
*/
public static void modifyProperties(String key, String value) {
try {
// 从输入流中读取属性列表(键和元素对)
Properties prop = getProperties();
prop.setProperty(key, value);
String path = PropertiesUtils.class.getResource("/config.properties").getPath();
FileOutputStream outputFile = new FileOutputStream(path);
prop.store(outputFile, "modify");
outputFile.close();
outputFile.flush();
} catch (Exception e) {
}
}
}
分享到:
相关推荐
properties文件读写操作
### C#操作Properties,读写配置文件 在C#编程中,经常需要处理应用程序的配置信息,例如数据库连接字符串、用户界面的语言设置等。这些配置信息通常存储在配置文件中,便于程序运行时动态加载和修改。C#提供了一种...
本篇文章将详细探讨如何通过Python来读取并解析`.properties`配置文件。 首先,了解`.properties`文件的格式。这种文件通常用于存储配置信息,其中键值对以等号`=`分隔,每一行代表一个键值对,注释以`#`或`!`开始...
1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` username=admin password=123456 database.url=jdbc:mysql://localhost:3306/...
这意味着读写操作应该是原子性的,或者在必要的时候使用同步控制。 通过使用`PropertyUtil.java`这样的工具类,开发人员可以避免编写重复的代码,更专注于业务逻辑,而不用关心底层的文件I/O细节。此外,良好的封装...
读取Properties文件是Java开发中的常见操作,特别是在需要根据配置文件动态改变程序行为的时候。下面我们将详细探讨如何在Java中读取Properties文件。 首先,你需要确保你的项目中包含了一个Properties文件,比如`...
以下是一个简单的`properties`文件读取的步骤和示例: 1. **创建properties文件** 创建一个名为`config.properties`的文件,内容如下: ``` username=admin password=123456 database.url=jdbc:mysql://...
2. **从properties文件读取时间**: - 创建`Properties`对象并加载文件,可以使用`load`方法从`InputStream`读取。 - 获取键对应的值,这里我们使用`getProperty`方法。例如: ```java Properties props = new ...
`diffProperties.java`文件很可能是这个工具的主要实现部分,它可能包含了读取两个properties文件,比较其内容并显示差异数目的逻辑。在Java中,我们可以使用`Properties`类的`entrySet()`方法获取所有键值对,然后...
这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...
### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。这些文件通常包含了应用程序运行时所需的配置信息,如数据库连接信息、系统参数等。`...
- 首先读取Properties文件,解析每行的键值对 - 在Excel中创建一个新的工作表,设置两列,一列作为键,一列作为值 - 使用编程语言将解析出的键值对填入Excel文件。例如,使用Python的`pandas`库,可以创建...
总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...
总结来说,读取.properties文件并将其内容转化为Map对象,以及将Map对象写回文件的过程,是Java开发中的常见操作。这使得我们可以方便地管理配置信息,并允许在不同环境间灵活切换配置。在实际项目中,可以进一步...
在处理Properties文件时,可能会遇到几个常见的问题,包括找不到指定路径、读取正常但文件数据未更新的情况。以下是对这些问题的详细解答。 首先,让我们解决“系统找不到指定路径”的问题。在Java中,加载...
使用`Properties`类可以方便地读取和操作这些文件,而现代IDE和版本控制系统则提供了强大的辅助功能,以提高开发效率和代码质量。在实际应用中,应考虑使用框架提供的高级特性,以实现更灵活和自动化的配置管理。
以下是如何利用`Properties`类读取和操作`.properties`文件的详细步骤。 1. **创建或加载Properties对象** 首先,你需要创建一个`Properties`对象来保存配置文件中的数据。这个对象可以为空,然后通过`load()`方法...
下面将详细讲解如何在Java中进行Properties文件的操作,包括读取、修改和保存。 首先,`Properties`是Java中的一个类,位于`java.util`包下,它专门用来处理属性列表,这些属性可以是从流中加载或保存到流中。`...
- 为了代码的可维护性和可重用性,可以创建一个工具类,封装Properties的读写操作。这样在项目中只需调用相应的静态方法即可。 ```java public class PropertiesUtil { public static String getProperty(String...
在Java代码中,首先需要导入`java.util.Properties`和`java.io.*`等相关的类库,以便进行读写Properties文件的操作。 2. **加载Properties文件** 使用`Properties`类的`load()`方法加载Properties文件。这个方法...