Java操作属性文件之工具类

  最近空闲时间整理一下平时常用的一下工具类,重复造轮子实在是浪费时间,如果不正确或者有待改善的地方,欢迎指教...

package com.hsuchan.business.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import org.apache.log4j.Logger;

/**
 * Java属性文件操作工具类
 * <p>由于每个人的需求不一样,所以本工具只提供常用的功能(包括根据键名获取键值,根据键名修改键值),
 * 如果不满足,自个完全可以修改,在本工具类中,我们假设属性文件已经存在,并且文件中已经存在我们要操作的key</p>
 * @authorHsuChan
 * @version v1.0.0 2015-06-19
 */
public class PropertiesUtil {
    private static Properties properties= new Properties();
    private static Logger logger = Logger.getLogger(PropertiesUtil.class);
    /**测试用 属性文件名*/
    private static final String PROPERTIES_FILE_PATH="/config.properties";
    /**测试用 操作的键名*/
    private static final String KEY_NAME="content";

    /**
     * 初始化properties
     * @param path 属性文件路径,如:/config.properties
     */
    private static void initProperties(String path) {

        try {
            InputStream ipsm = PropertiesUtil.class.getResourceAsStream(path);
            properties.load(ipsm);
            ipsm.close();
        } catch (IOException e) {
            logger.error(e.getMessage());
        }
    }

    /**
     * 根据键名key获取属性文件中对应的键值
     * @param path 属性文件路径,如:/config.properties
     * @param key 属性文件 键名
     * @return
     */
    public static String getValueByKey(String path,String key){
        //如果properties为空,则初始化
        if(properties.isEmpty())
            initProperties(path);
        return properties.getProperty(key);
    }

    /**
     * 通过键名key修改其对应的值为value
     * @param path 属性文件路径,如:/config.properties
     * @param key  属性文件 键名
     * @param value 属性文件 键值
     */
    public static void modifyValueByKey(String path,String key,String value) {
        //如果properties为空,则初始化
        if(properties.isEmpty())
            initProperties(path);
        //修改值
        properties.setProperty(key, value);

        try {
            //获取文件路径
            URL url = PropertiesUtil.class.getResource(path);
            FileOutputStream fos = new FileOutputStream(new File(url.toURI()));
            //保存到文件
            properties.store(fos, "modify the value of key");
            fos.close();
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
    }

    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
        //取值示例
        System.out.println("修改前:"+getValueByKey(PROPERTIES_FILE_PATH,KEY_NAME));
        //修改示例
        modifyValueByKey(PROPERTIES_FILE_PATH,KEY_NAME,"3333311s");
        //取值示例
        System.out.println("修改后:"+getValueByKey(PROPERTIES_FILE_PATH,KEY_NAME));

    }
}

转载请注明出处,谢谢。

时间: 2024-08-10 00:04:48

Java操作属性文件之工具类的相关文章

Java操作属性文件,支持新增或更新多个属性

Java操作属性文件,支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包括文件名和后缀名) * @param parameterName 名称 * @param parameterValue 值 */ public static void writeProperties(String filePath, String parameterName, String parameterValue) { Pro

java IO Nio 文件拷贝工具类Files

public static void main(String[] args) throws Exception { Files.copy(Paths.get("file/text.txt"), new FileOutputStream("nio.txt")); } Files类具体使用方法详解

java操作properties文件简单学习

java操作properties文件的工具类简单封装: 注意:由于本地和环境和linux服务的路径有区别,或者jetty,resin,tomcat部署后,文件的路径也是有区别的.比如我们在linux上把项目放在另一个磁盘下,此时,文件的路径就是项目所在的路径,而不是WEB-INF下,所以,这里需要灵活配置! package com.sohu.util; import java.io.BufferedInputStream; import java.io.File; import java.io.

Android之文件读写工具类

本工具类永久维护,永久更新,如果各位读者发现有bug或者不合理之处,欢迎指正,博主将第一时间改正. 以下是主要内容,本类主要功能有: 1.创建文件功能: 2.向文件中写入字节数组: 3.向文件中写入字符串: 4.从文件中读取字节数组: 5.从文件中读取字符串: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; /** * 文件读写工具类 * * @author bear *

java文件处理工具类

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileRea

Java 压缩文件夹工具类(包含解压)

依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.18</version> </dependency> CompressUtils.java package utils; import java.io.BufferedInputStream;

JAVA操作properties文件

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便.一.properties文件test.properties------------------------------------------------------###########

iOS开发拓展篇—封装音频文件播放工具类

一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (id)initWithData:(NSData *)data error:(NSError **)outError; 准备播放(缓冲,提高播放的流畅性) - (BOOL)prepareToPlay;

JAVA基础学习day17--集合工具类-Collections

一.Collection简述 1.1.Collection与Collections的区别 Collections是集合的静态工具类 Collection:是集合的顶级接口 二.Sort 2.1.sort package com.pb.sort.demo1; import java.util.ArrayList; import java.util.Collections; /** * 对字符串进行自然排序 * */ public class SortDemo1 { public static vo