`

Java Properties 属性文件读取写入工具类

    博客分类:
  • Java
阅读更多
自己编写的一个简单工具类,方便操作属性文件

构造方法必须传入属性文件的位置,工具类会自动定位到项目的物理根目录到/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文件中文转化

    默认情况下,Java Properties类在读取和写入文件时使用ISO-8859-1编码,这是一种西欧字符集,不包含中文字符。当我们在properties文件中直接使用中文时,Java在读取时可能会出现乱码。为了解决这个问题,我们可以...

    读取properties返回map并写入文件

    读取.properties文件的主要工具有Java的Properties类。以下是一个简单的示例,展示如何使用Properties类加载文件并将其内容转换为Map: ```java import java.io.*; import java.util.*; public class ...

    能保存Properties文件注释的Properties工具类

    针对这个问题,开发者们创建了`CommentedProperties`这样的工具类,以保留属性文件中的注释信息。 `CommentedProperties`是基于Java的自定义Properties扩展,它的核心功能在于加载和保存文件时能够识别并保留注释。...

    java配置文件修改读取工具类,包括yml和properties类型文件

    总结来说,`YmlUtil.java`和`PropertiesUtil.java`是Java开发中的实用工具类,它们简化了YAML和Properties配置文件的读取和修改过程,提高了代码的可维护性和灵活性。理解和使用这些工具类,对于提升Java项目管理...

    Properties 文件比较工具

    总之,“Properties文件比较工具”是Java开发中一个实用的小型应用,它利用了Java标准库提供的`Properties`类,为开发者提供了便利,提高了工作效率。通过分析`diffProperties.java`和`property.java`源代码,我们...

    JAVA 解决Properties文件保存中文乱码

    本文将深入探讨如何在Java中解决Properties文件保存和读取中文乱码的挑战。 首先,我们需要理解Java默认使用ISO-8859-1编码来处理Properties文件。由于此编码不支持大部分中文字符,因此在保存或加载包含中文的...

    Java_Properties_类读取配置文件信息

    【Java_Properties_类读取配置文件信息】 在软件开发中,配置文件是必不可少的,因为它们允许我们灵活地管理程序中的可变参数,而无需修改源代码。Java 支持使用 `.properties` 文件作为其标准配置文件格式,这得益...

    XML和属性文件读取和写入

    Java提供了`java.util.Properties`类来处理属性文件。这些文件通常具有.key=value格式。 ```java import java.io.FileInputStream; import java.util.Properties; // 读取属性文件 Properties props = new ...

    读取Properties信息工具类

    "读取Properties信息工具类"是指一个自定义的Java类,它封装了与Properties文件交互的过程,通常包括加载、获取和更新属性值等操作。这样的工具类能够使代码更具有可维护性和复用性,避免在多个地方重复处理...

    属性文件读写操作类

    这篇博客文章“属性文件读写操作类”可能详细介绍了如何在Java中进行属性文件的操作,包括读取和写入。下面将详细阐述相关知识点。 1. **属性文件格式** 属性文件是纯文本文件,其内容通常以UTF-8编码,每一行表示...

    Property工具类,Properties文件工具类,PropertiesUtils工具类

    这些工具类帮助开发者读取、写入以及管理应用程序的配置信息,通常以`.properties`文件的形式存在。`.properties`文件是一种键值对格式,用于存储程序的设置或数据,如数据库连接字符串、应用配置参数等。 `...

    java操作properties属性文件jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar,有例子

    Java操作Properties属性文件是Java开发中的常见任务,主要用于配置应用的参数或存储系统设置。`jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar` 是一个专门用于编辑和管理Properties文件的工具,这使得开发者可以...

    java修改Properties文件,让输出格式与输入格式保持不变

    在Java编程中,Properties类是处理配置文件的关键工具,它用于加载、存储键值对,这些键值对常被用于程序的配置。然而,当我们读取一个Properties文件并再次保存时,原始的格式可能会发生变化,比如注释丢失、行顺序...

    Java源码读写Properties文件.rar

    总结来说,Java中的Properties类是管理配置文件的关键工具,它提供了一套完整的API来读取、写入和操作键值对。掌握这部分知识对于任何Java开发者来说都是至关重要的,因为配置文件在软件开发中扮演着不可或缺的角色...

    java读写xxx.properties文件实用小例

    在Java编程中,读写`.properties`...总结来说,Java的`Properties`类提供了方便的方式来处理`.properties`文件,实现配置信息的读取、写入和管理。通过正确处理异常并利用适当的工具库,可以构建健壮且易于维护的代码。

    Properties文件读写;Property文件读写;Property

    在本案例中,我们关注的是`PropertyUtil.java`工具类,它提供了方便的方法来读取和写入这些Properties文件,简化了开发人员的工作流程。 `PropertyUtil.java`的核心功能可能包括以下几点: 1. **读取Properties...

    java获取properties属性文件示例

    总之,`Properties`类是Java中用于处理配置文件的关键工具,它提供了方便的方法来读取、修改和写入属性文件,使得应用程序的配置管理变得简单而有效。在实际项目中,合理使用`Properties`类能极大地提高代码的可维护...

    用JAVA 读属性文件

    默认情况下,`Properties`类使用ISO-8859-1编码读取和写入属性文件。如果你的属性文件包含非ASCII字符,例如中文字符,你需要指定UTF-8编码: ```java Properties props = new Properties(); try (InputStreamReader...

    一个获取属性文件的工具类

    `PropertiesUtil`类是一个实用工具类,设计用于简化读取、写入和操作这些属性文件的过程。在本文中,我们将深入探讨`PropertiesUtil`类的功能和实现细节。 首先,`PropertiesUtil`类可能包含以下几个核心方法: 1....

    java操作properties文件

    总结,Java中的Properties类是处理配置文件的核心工具,通过加载、保存、获取和设置键值对,使得程序可以灵活地管理配置信息。同时,它支持国际化和本地化,极大地提高了应用的适应性。在实际开发中,正确理解和使用...

Global site tag (gtag.js) - Google Analytics