Java操作属性配置文件详解

  

<强> 1简介:

  

JDK提供的java.util.Properties类继承自散列表类并且实现了地图接口,是使用一种键值对的形式来保存属性集,其中键和值都是字符串类型。

  

java.util.Properties类提供了getProperty()和setProperty()方法来操作属性文件,同时使用load()方法和存储()方法加载和保存属性配置文件。

  

java.util.ResourceBundle类也提供了读取属性配置文件的方法,ResourceBundle是一个抽象类。

  

<强> 2.属性中的主要方法

  

1)负载(InputStream生态基):该方法可以从。属性属性文件对应的文件数入流中,加载属性列表到属性类对象中.load有两个方法的重载:负载(InputStream生态基)、负载(读者读者),可根据不同的方式来加载属性文件。

        InputStream生态基=TestProperties.class.getClassLoader () .getResourceAsStream (“demo.properties”);//通过当前类加载器的getResourceAsStream方法获?/TestProperties当前类名;TestProperties.class。取得当前对象所属类的对象,getClassLoader():取得该课程对象的类装载器      InputStream的=ClassLoader.getSystemResourceAsStream (“filePath”);      InputStream生态基=new FileInputStream(新文件(“filePath”));//从文件获取   InputStream的=context.getResourceAsStream (“filePath”);//在servlet中,可以通过上下文来获取InputStream   InputStream生态基=新的URL(“路径”).openStream ();//通过URL来获取   之前      

读取方法如下:

        箴=new属性();//实例化一个属性对象   InputStream生态基=new FileInputStream (“demo.properties”);//获取属性文件的文件输入流   pro.load (nStream);    inStream.close ();      

, 2)店(OutputStream,字符串评论):这个方法将属性类对象的属性列表写入. Properties配置文件。如下:

        FileOutputStream outStream=new FileOutputStream (“demo.properties”);   pro.store (outStream,“评论”);    outStream.close ();      

<强> 3 ResourceBundle中的主要方法

  

,通过ResourceBundle.getBundle()静态方法来获取,此方法获取属性属性文件不需要加. properties后缀名。也可以从InputStream中获取ResourceBundle对象。

        ResourceBundle资源=ResourceBundle.getBundle ("com/xiang/demo ");//情绪为属性文件名,放在包com.xiang下,如果是放在src下,直接用测试即可   ResourceBundle resource1=new PropertyResourceBundle(生态基);   字符串值=https://www.yisu.com/zixun/resource.getString(“名字”);之前      

在使用中遇到的问题可能是配置文件的路径,当配置文件不在当前类所在的包下,则需要使用包名限定;若属性文件在src根目录下,则直接使用demo.properties或演示即可。

  

<强> 4属性操作实例

        进口java.io.File;   进口java.io.FileNotFoundException;   进口java.io.FileOutputStream;   进口java.io.IOException;   进口java.io.InputStream;   进口java.util.HashMap;   进口java.util.Iterator;   进口java.util.Map;   进口java.util.Properties;/* *   * Java中认领配置文件工具类   * @author蜀   *   */公开课PropsUtil {   私人字符串路径=" ";   私有财产属性;/* *   *默认构造函数   */公共PropsUtil () {}/* *   *构造函数   * @param路径传入属性地址值   */公共PropsUtil (String路径){   这一点。路径=路径;   }/* *   *加载属性文件   * @return返回读取到的属性对象   */公共属性loadProps () {   InputStream生态基=ClassLoader.getSystemResourceAsStream(路径);   尝试{   如果(生态基==null)   把新FileNotFoundException(路径+“文件未找到”);=new属性();   properties.load(生态基);   inStream.close ();   }捕捉(IOException e) {   e.printStackTrace ();   }   返回属性;   }/* *   *将配置写入到文件   */公共空间writeFile () {//获取文件输出流   尝试{   FileOutputStream outputStream=new FileOutputStream(新文件(ClassLoader.getSystemResource(路径).toURI ()));   属性。存储(outputStream、空);   outputStream.close ();   }捕捉(异常e) {//TODO自动生成的catch块   e.printStackTrace ();   }   }/* *   *通过关键字获取值   * @param关键   * @return返回对应的字符串,如果无,返回零   */getValueByKey公共字符串(字符串键){   如果属性==null)   属性=loadProps ();   字符串val=properties.getProperty (key.trim ());   返回val;   }/* *   *通过关键字获取值   * @param关键需要获取的关键字   * @param defaultValue若找不到对应的关键字时返回的值   * @return返回找到的字符串   */公共getValueByKey字符串(字符串,字符串defaultValue) {   如果属性==null)   属性=loadProps ();   返回属性。getProperty(关键、defaultValue);   }/* *   *获取属性所有的值   * @return返回属性的键值对   */公共Map

Java操作属性配置文件详解