Properties类与配置文件

//加载文件
public
static void testLoadProperties() throws Exception { Properties properties = new Properties(); InputStream in = new FileInputStream("E:/itcast/config.properties"); properties.load(in); // 加载 in.close(); System.out.println(properties); }
//写配置文件
public static void testStoreProperties() throws Exception {

    // 准备配置信息

    Properties properties = new Properties();

    properties.setProperty("name", "李四");

    properties.setProperty("age", "20");

 

    // 准备

    OutputStream out = new FileOutputStream("d:/my.properties");

    String comments = "这是我的配置文件";

 

    // 写出去

    properties.store(out, comments);

    out.close();

}


 
 
static Properties properties ;
    
    static{
        try {
            properties = new Properties();
            Class clazz = dd.class; 
            InputStream inputStream = clazz.getResourceAsStream("/my.properties"); //  "/"������Classpath��·����           getResourceAsStream �÷�������ʹ�õ�·������ʹ�������ļ�·����
            properties.load(inputStream);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        System.out.println("��ǰ·����"+ new File(".").getAbsolutePath() );
        System.out.println( properties.getProperty("userName")+":"+properties.getProperty("password"));
        
    }

Properties类对应.properties文件。文件内容是键值对,键值对之间使用"="或空格隔开。开头是"#"的表示注释

    Properties类在加载.properties文件时使用的iso8859-1的编码。所以这个文件中的中文要特殊处理:如果这个配置文件中有中文就必须要进行转义,使用native2ascii.exe命令操作:

native2ascii d:/my.properties d:/my2.properties

   

    使用Properties类中的load(InputStream) 方法可以加载配置文件,使用其中的store(OutputStream) 方法可以保存配置到指定文件。

    更多的信息可以看Properties类的API文档。

/**
         * 1. getRealPath读取,返回资源文件的绝对路径
         */
        /*String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
        System.out.println(path);
        File file = new File(path);
        FileInputStream in = new FileInputStream(file);*/
        
        /**
         * 2. getResourceAsStream() 得到资源文件,返回的是输入流
         */
        InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
        
        
        Properties prop = new Properties();
        //读取资源文件
        prop.load(in);
        
        String user = prop.getProperty("user");
        String password = prop.getProperty("password");
        System.out.println("user="+user);
        System.out.println("password="+password);
        
    }
原文地址:https://www.cnblogs.com/bee-home/p/7207634.html