zoukankan      html  css  js  c++  java
  • Properties工具类学习

    Properties类学习

    1、定义

    • Properties,java.utils包下的一个工具类,主要用于读取Java的配置文件。各种语言都有自己所支持的配置文件,配置文件中很多变量是经常变动的。
    • 这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。

    2、主要方法

    它提供了几个主要的方法:

    1. getProperty(String key):用指定的键在属性列表中搜素属性。通过参数key,得到key所对应的value。
    2. load(InputStream input):从输入流中读取属性列表(键值对)。通过对指定的文件进行装载来获取该文件的所有键值对,以供getProperty(String key)方法来搜素。
    3. setProperty(String key, String value):调用Hashtable的put方法,通过调用基类的put方法来设置键值对。
    4. store(OutputStream out, String comments):以适合使用load方法加载到Properties表中的格式,将此Propertie表中的属性列表(键值对)写入输出流。与load方法相反,该方法将键值对写入到指定的文件中去。
    5. clear():清除所有装载的键值对。该方法在基类中提供。

    3、注意

    • ResourceBundle 只读
    • Properties:可写可读

    代码示例

    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.Properties;
    
    public class PropertiesDemo {
    
    	private static String version;
    	private static String username;
    	private static String password;
    
    	// 静态代码块,只会执行一次,类加载的时候就会执行
    	static {
    		// readConfig();
    	}
    
    	// 写入配置文件
    	public static void writeConfig(String version, String username, String password) {
    		Properties p = new Properties();
    
    		p.put("app.version", version);
    		p.put("db.username", username);
    		p.put("db.password", password);
    
    		try {
    			OutputStream outStream = new FileOutputStream("src/testio/conf.properties");
    			// 写文件
    			p.store(outStream, "update config");
    			outStream.close();
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}// writeConfig
    
    	// 读取配置文件
    	public static void readConfig() {
    		Properties p = new Properties();
    
    		try {
    			// 由于这种方法需要写全路径(src)而发布时是没有src目录的,不推荐使用
    			// InputStream inStream = new FileInputStream("src/testio/conf.properties");
    			
    			// 通过当前线程的类加载器对象,来加载指定包下的配置文件。
    			InputStream inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("res/conf.properties");
    			p.load(inStream);// 加载文件
    
    			// 从文件中获取数据
    			version = p.getProperty("app.version");
    			username = p.getProperty("db.username");
    			password = p.getProperty("db.password");
    
    			inStream.close();
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}// readConf
    
    	public static void main(String[] args) {
    		//writeConfig("88", "fei", "36521");
    		readConfig();
    		System.out.println("version = " + version + ";username = " + username + ";password = " + password);
    	}
    }
    

    用的配置文件名为conf.properties
    文件内容如下:

    db.password=36521
    app.version=88
    db.username=fei

  • 相关阅读:
    Nginx负载均衡配置
    云鹏在美团八年工作总结
    尽量不要让儿女从事这3种工作,钱再多也别做,坚持再久也没前途
    Nginx 配置ip_hash
    postgresql获取表结构,表名、表注释、字段名、字段类型及长度和字段注释
    更快的Maven来了,我的天,速度提升了8倍!
    Nginx负载均衡配置及算法详解
    nginx负载均衡策略:ip_hash、url_hash
    Windows Phone实用开发技巧(41):解决WebBrowser中显示黑色背景网页闪屏
    Windows Phone实用开发技巧(32):照片角度处理
  • 原文地址:https://www.cnblogs.com/zxfei/p/10891277.html
Copyright © 2011-2022 走看看