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

  • 相关阅读:
    Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署
    hadoop 2.x 安装包目录结构分析
    词聚类
    Hadoop 学习笔记 (十一) MapReduce 求平均成绩
    Hadoop 学习笔记 (十) MapReduce实现排序 全局变量
    Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法
    Visual Studio Code 快捷键大全(Windows)
    Eclipse安装教程 ——史上最详细安装Java &Python教程说明
    jquery操作select(取值,设置选中)
    $.ajax 中的contentType
  • 原文地址:https://www.cnblogs.com/zxfei/p/10891277.html
Copyright © 2011-2022 走看看