• 文件处理----Properties文件处理


      properties是一种属性文件,这种文件以key=value格式存储内容,代码中可以使用Properties类来读取这个文件,然后得到数据。

      当配置文件用,由于难以表达层次,复杂点可以使用xml做配置。

    通俗点讲就相当于定义一个变量,在这个文件里面定义这些变量的值,在程序里面可以调用这些变量,好处就是,如果程序中的参数值需要变动,直接来改这个.properties文件就可以了,不用去修改源代码。


      Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。

      Properties类表示一组持久的属性。Properties可以保存到流中或从流中加载。属性列表中的每个键及其对应的值都是一个字符串。

    Properties主要方法:

    (1)loadload(InputStream in);--从输入字节流读取属性列表(键和元素对)

    load(Reader reader);--从简单的线性格式从输入字符流读取属性列表(关键字和元素对)

    (2)store

    store(OutputStream out,String comments);--将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream)方法加载到Properties表中的格式输出流。

    comments不为空,保存后的属性文件第一行会是#comments,表示注释信息;如果为空则没用注释信息。注释信息后面是属性文件的当前保存时间信息。

    store(writer write,String comments);

    (3)getProperty(String key)和setProperty(String key,String value)

    第一个是  使用此属性列表中指定的键搜索属性。

    第二个是  致电Hashtable方法put,也就是设置键值(一个新的键值对)。

    (4)clear();

    清除所有装载的键值对,该方法在基类中提供。

     1 package a.one;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.FileOutputStream;
     5 import java.util.Properties;
     6 
     7 public class PropertiesTest2 {
     8     public static void main(String[] args) throws Exception {
     9         //一个空的属性列表
    10         Properties p=new Properties();
    11         System.out.println(p);
    12         FileInputStream in=new FileInputStream("config/c.properties");
    13         p.load(in);//加载属性列表
    14         System.out.println(p);
    15         System.out.println(p.getProperty("name"));//得到某属性值
    16         System.out.println("===========================");
    17         FileOutputStream out=new FileOutputStream("config/d.properties");
    18         p.setProperty("key", "value");
    19         p.store(out, "Annotation");//注释
    20     }
    21 }

    结果:

    {age=30, name=taeyeon, song=four seasons}
    taeyeon
    ===========================

    d.properties:

    1 #Annotation
    2 #Wed Apr 17 13:03:52 GMT+08:00 2019
    3 age=30
    4 name=taeyeon
    5 key=value
    6 song=four seasons

    c.properties:

    1 name=taeyeon
    2 age=30
    3 song=four seasons

    总结:Java的properties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是Java类或者库的存放路径,在Java工程中,properties放到class文件这一块。在web应用中,最简单的方法就是放到web应用的WEB-INFclasses目录下即可,也可以放到其他文件夹下面,这时候需要在设置classpath环境变量的时候,将这个文件的路径加到classpath变量中,这样也可以读取到。


  • 相关阅读:
    SQL基础复习03--数据查询SQL语句(单表查询)
    SQL基础复习02--数据操纵SQL语句
    数据结构与算法01--复杂度
    SQL基础复习01--SQL基础与数据定义SQL语句
    Azure Data Studio的初步了解与使用
    ASP.NET Core Web API 使用DynamicLinq实现排序功能
    Vue3-说说Vue 3.0中Treeshaking特性?举例说明一下?
    JavaScript高频手写面试题
    Java常用文件操作-1
    Java 架构师之路(2)
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/10721514.html
Copyright © 2020-2023  润新知