自己编写的一个简单工具类,方便操作属性文件
构造方法必须传入属性文件的位置,工具类会自动定位到项目的物理根目录到/Webroot后面需要传入路径,传入的路径记住以/开头。
##现在工具类未对太多的安全性验证。
package cn.net.withub.smsp.common.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import bsh.This;
import cn.net.withub.lab.SMGPLab;
/**
* 配置文件读取和写入工具类
* @author Jacky.Jiang
*
*/
public class PropertiesHelper {
private static Log logger = LogFactory.getLog(This.class);
private String project_root = "";
private File file = null;
public PropertiesHelper(String filePath) {
//构造时获取到项目的物理根目录
project_root = this.getClass().getResource("/").toString().replace("file:/", "");
project_root = project_root.substring(0,project_root.indexOf("/WEB-INF"));
if(filePath != null && filePath.length() > 0){
try {
file = new File(project_root+filePath);
} catch (Exception e) {
logger.error(e);
}
}
}
public String getProperties(String key){
InputStream fis = null;
try {
Properties prop = new Properties();
fis = new FileInputStream(getAbsolutePath());
prop.load(fis);
return prop.getProperty(key);
} catch (Exception e) {
logger.error(e);
}finally{
try{if(fis != null){fis.close();}}catch(Exception e){}
}
return "";
}
public void setProperties(String key,String value)throws Exception{
Properties prop = new Properties();
FileOutputStream outputFile = null;
InputStream fis = null;
try {
//输入流和输出流要分开处理, 放一起会造成写入时覆盖以前的属性
fis = new FileInputStream(getAbsolutePath());
//先载入已经有的属性文件
prop.load(fis);
//追加新的属性
prop.setProperty(key, value);
//写入属性
outputFile = new FileOutputStream(getAbsolutePath());
prop.store(outputFile, "");
outputFile.flush();
} catch (Exception e) {
logger.error(e);
throw e;
}finally{
try{if(fis != null){fis.close();}}catch(Exception e){}
try{if(outputFile != null){outputFile.close();}}catch(Exception e){}
}
}
public String getAbsolutePath(){
try {
return file.getAbsolutePath();
} catch (Exception e) {
logger.error(e);
}
return "";
}
}
分享到:
相关推荐
默认情况下,Java Properties类在读取和写入文件时使用ISO-8859-1编码,这是一种西欧字符集,不包含中文字符。当我们在properties文件中直接使用中文时,Java在读取时可能会出现乱码。为了解决这个问题,我们可以...
读取.properties文件的主要工具有Java的Properties类。以下是一个简单的示例,展示如何使用Properties类加载文件并将其内容转换为Map: ```java import java.io.*; import java.util.*; public class ...
针对这个问题,开发者们创建了`CommentedProperties`这样的工具类,以保留属性文件中的注释信息。 `CommentedProperties`是基于Java的自定义Properties扩展,它的核心功能在于加载和保存文件时能够识别并保留注释。...
总结来说,`YmlUtil.java`和`PropertiesUtil.java`是Java开发中的实用工具类,它们简化了YAML和Properties配置文件的读取和修改过程,提高了代码的可维护性和灵活性。理解和使用这些工具类,对于提升Java项目管理...
总之,“Properties文件比较工具”是Java开发中一个实用的小型应用,它利用了Java标准库提供的`Properties`类,为开发者提供了便利,提高了工作效率。通过分析`diffProperties.java`和`property.java`源代码,我们...
本文将深入探讨如何在Java中解决Properties文件保存和读取中文乱码的挑战。 首先,我们需要理解Java默认使用ISO-8859-1编码来处理Properties文件。由于此编码不支持大部分中文字符,因此在保存或加载包含中文的...
【Java_Properties_类读取配置文件信息】 在软件开发中,配置文件是必不可少的,因为它们允许我们灵活地管理程序中的可变参数,而无需修改源代码。Java 支持使用 `.properties` 文件作为其标准配置文件格式,这得益...
Java提供了`java.util.Properties`类来处理属性文件。这些文件通常具有.key=value格式。 ```java import java.io.FileInputStream; import java.util.Properties; // 读取属性文件 Properties props = new ...
"读取Properties信息工具类"是指一个自定义的Java类,它封装了与Properties文件交互的过程,通常包括加载、获取和更新属性值等操作。这样的工具类能够使代码更具有可维护性和复用性,避免在多个地方重复处理...
这篇博客文章“属性文件读写操作类”可能详细介绍了如何在Java中进行属性文件的操作,包括读取和写入。下面将详细阐述相关知识点。 1. **属性文件格式** 属性文件是纯文本文件,其内容通常以UTF-8编码,每一行表示...
这些工具类帮助开发者读取、写入以及管理应用程序的配置信息,通常以`.properties`文件的形式存在。`.properties`文件是一种键值对格式,用于存储程序的设置或数据,如数据库连接字符串、应用配置参数等。 `...
Java操作Properties属性文件是Java开发中的常见任务,主要用于配置应用的参数或存储系统设置。`jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar` 是一个专门用于编辑和管理Properties文件的工具,这使得开发者可以...
在Java编程中,Properties类是处理配置文件的关键工具,它用于加载、存储键值对,这些键值对常被用于程序的配置。然而,当我们读取一个Properties文件并再次保存时,原始的格式可能会发生变化,比如注释丢失、行顺序...
总结来说,Java中的Properties类是管理配置文件的关键工具,它提供了一套完整的API来读取、写入和操作键值对。掌握这部分知识对于任何Java开发者来说都是至关重要的,因为配置文件在软件开发中扮演着不可或缺的角色...
在Java编程中,读写`.properties`...总结来说,Java的`Properties`类提供了方便的方式来处理`.properties`文件,实现配置信息的读取、写入和管理。通过正确处理异常并利用适当的工具库,可以构建健壮且易于维护的代码。
在本案例中,我们关注的是`PropertyUtil.java`工具类,它提供了方便的方法来读取和写入这些Properties文件,简化了开发人员的工作流程。 `PropertyUtil.java`的核心功能可能包括以下几点: 1. **读取Properties...
总之,`Properties`类是Java中用于处理配置文件的关键工具,它提供了方便的方法来读取、修改和写入属性文件,使得应用程序的配置管理变得简单而有效。在实际项目中,合理使用`Properties`类能极大地提高代码的可维护...
默认情况下,`Properties`类使用ISO-8859-1编码读取和写入属性文件。如果你的属性文件包含非ASCII字符,例如中文字符,你需要指定UTF-8编码: ```java Properties props = new Properties(); try (InputStreamReader...
`PropertiesUtil`类是一个实用工具类,设计用于简化读取、写入和操作这些属性文件的过程。在本文中,我们将深入探讨`PropertiesUtil`类的功能和实现细节。 首先,`PropertiesUtil`类可能包含以下几个核心方法: 1....
总结,Java中的Properties类是处理配置文件的核心工具,通过加载、保存、获取和设置键值对,使得程序可以灵活地管理配置信息。同时,它支持国际化和本地化,极大地提高了应用的适应性。在实际开发中,正确理解和使用...