美文网首页
Properties文件操作

Properties文件操作

作者: Impact | 来源:发表于2016-11-26 14:36 被阅读0次

    通常将系统相关的配置和属性,例如数据库、缓存等写在properties文件中,方便管理和维护。参考JDK7中的Properties类,学着进行了一些对properties文件的操作,总结一下,留存以后查看。


    Properties 类说明

    • Properties 类表示了一个持久的属性集。
    • Properties可保存在流中或从流中加载。
    • 属性列表中每个键及其对应值都是一个字符串。
    • Properties继承于Hashtable。

    文件所在目录:

    • /config/config.properties
    • /src/com/OperateProperties.java

    properties件内容

    http.host=127.0.0.1
    http.port=8080
    

    方法说明

    1. 读取properties文件
    InputStream in = new FileInputStream(filePath);
    Properties properties = new Properties();
    properties.load(in);
    
    1. 根据key获取value
    String host = properties.getProperty("http.host");
    
    1. 获取所有内容
    Enumeration en = properties.propertyNames();
    while (en.hasMoreElements()) {
        String key = (String) en.nextElement();
        String Property = properties.getProperty(key);
    }
    
    1. 修改value
    properties.setProperty("http.host", "192.168.1.1");
    // 输出
    OutputStream fos = new FileOutputStream(filePath);
    // 将此 Properties 表中的属性列表(键和元素对)写入输出流
    properties.store(fos, "add key:'uri'");
    

    代码

    package com;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Enumeration;
    import java.util.Properties;
    
    /**
     * Properties文件操作,方法
     * 
     * @author notNine
     * @since 1.0
     * @version 2016.11.8
     */
    public class OperateProperties {
        
        
        // 项目路径
        public static final String root = System.getProperty("user.dir");
        
        // properties文件路径
        public static final String filePath = root + "/config/config.properties";
        
        public static void main(String[] args) {
            
            // 根据key读取properties的value
            readProperties();
            
            // 读取properties所有内容
            // readAllProperties();
            
            // 写入properties内容
            // writeProperties();
        }
        
        /**
         * 读取properties内容,根据key获取value
         */
        public static void readProperties() {
            try {
                // 读取properties文件
                InputStream in = new FileInputStream(filePath);
                Properties properties = new Properties();
                properties.load(in);
                // 根据key获取value
                String host = properties.getProperty("http.host");
                String port = properties.getProperty("http.port");
                // 打印
                System.out.println("host:" + host + ",port:" + port);
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        /**
         * 读取properties内容,所有内容
         */
        public static void readAllProperties() {
            try {
                // 读取properties文件
                InputStream in = new FileInputStream(filePath);
                Properties properties = new Properties();
                properties.load(in);
                
                // 获取所有内容
                Enumeration en = properties.propertyNames();
                while (en.hasMoreElements()) {
                    String key = (String) en.nextElement();
                    String Property = properties.getProperty(key);
                    // 打印
                    System.out.println(key + Property);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        /**
         * 写入properties内容
         */
        public static void writeProperties() {
            try {
                // 读取properties文件
                InputStream in = new FileInputStream(filePath);
                Properties properties = new Properties();
                properties.load(in);
                
                // 修改host
                properties.setProperty("http.host", "192.168.1.1");
                
                // 原文件中没有uri,会新增加key和value,但是没有写入保存到文件中
                properties.setProperty("http.uri", "/info");
                // 输出
                OutputStream fos = new FileOutputStream(filePath);
                // 将此 Properties 表中的属性列表(键和元素对)写入输出流
                properties.store(fos, "add key:'uri'");
                
                // 根据key获取value
                String host = properties.getProperty("http.host");
                String port = properties.getProperty("http.port");
                String uri = properties.getProperty("http.uri");
                
                // 打印
                System.out.println("host:" + host + ",port:" + port + ",uri:" + uri);
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    

    运行结果

    host:127.0.0.1,port:8080
    

    相关文章

      网友评论

          本文标题:Properties文件操作

          本文链接:https://www.haomeiwen.com/subject/dumzuttx.html