目录

  • 一、properties文件
  • 二、Properties类
    • 1. Properties类的理解
    • 2. 常用方法Properties类
      • (1) 存储键值对
      • (2) 通过key获取对应的value
      • (3) 读取文件
      • (4) 写入文件
    • 3. 简单的应用(单元测试)
      • (1) 键值对的简单读写
      • (2) 对文件的读
      • (3) 对文件的写
    • 4. 读取properties文件的模板

一、properties文件

  • properties文件是以properties为后缀的文件,是一种属性文件,这种文件以"key=value"的格式存储内容
  • Java中通常使用Properties类来读取这个文件,可以得到对应的数据
  • properties文件的要求与特点
    • 格式:属性名=属性值
    • 每对属性占一行(即一个键值对占一行)
    • 注释:在该文件中,用#表示单行注释
    • 属性文件中所有空行被忽略
    • 扩展名:properties
    • 属性文件中不能直接写汉字,所有的汉字会转成Unicode编码

二、Properties类

1. Properties类的理解

  • 可以使用这个类的实例存储键值对,我把它理解成 Map 的一个延申
  • 一般情况下,可以把他当成一个可以存储键值对的map,但是这个map可以进行文件的读写操作

2. 常用方法Properties类

(1) 存储键值对

 setProperty(String key, String value)

(2) 通过key获取对应的value

 public Object get(Object key)public String getProperty(String key)public String getProperty(String key, String defaultValue)

(3) 读取文件

  • 按面向行的格式从传入的字符流中读取属性列表
  • 换句话说,就是把文件中的键值对存储到这个对象中
  • 注意:可以读取txt文件、properties文件,但是推荐用properties保存配置信息
 public synchronized void load(InputStream inStream)public synchronized void load(Reader reader)

(4) 写入文件

  • 将属性列表的键值对输出到指定的输出流中
 public void list(PrintStream out)public void list(PrintWriter out)// 常用举例:p.list(System.out) // 打印到控制台,经常使用这个进行程序的调试

3. 简单的应用(单元测试)

(1) 键值对的简单读写

    @Testpublic void test() throws Exception  {Properties p = new Properties();// 1. 存储键值对p.setProperty("1", "AAA");p.setProperty("2", "BBB");// 2. 通过key获取valuesSystem.out.println(p.get("1"));System.out.println(p.get("2"));System.out.println("**********************");// 3. 通过key获取valuesSystem.out.println(p.getProperty("1"));System.out.println(p.getProperty("2"));System.out.println("**********************");// 4. 通过key获取values//      并且设置了默认值,如果key不存在,则显示values的默认值//      但是不会存储该数据System.out.println(p.getProperty("3", "CCC"));System.out.println(p.getProperty("4", "DDD"));System.out.println("**********************");// 5. 把"map"中的键值对输出到控制台p.list(System.out);}// -------------------------------------------------下面为输出内容/*AAABBB**********************AAABBB**********************CCCDDD**********************-- listing properties --1=AAA2=BBB*/

(2) 对文件的读

  • 只可以读取properties文件
    // jdbcTest1.properties:为空,没有内容// jdbcTest2.properties:有内容@Testpublic void test() throws Exception {// 1. 提供Properties实例对象Properties p1 = new Properties();Properties p2 = new Properties();// 2. 提供properties文件的输入流【注意:此时的文件路径默认与src同级】FileInputStream fs1 = new FileInputStream("doc\\jdbcTest1.properties");FileInputStream fs2 = new FileInputStream("doc\\jdbcTest2.properties");// 3. 读取文件p1.load(fs1);p2.load(fs2);// 4. 将读取到的内容输出到控制台中p1.list(System.out);System.out.println();p2.list(System.out);}// -------------------------------------------------下面为输出内容/*-- listing properties ---- listing properties --name=Tomid=1age=18*/

(3) 对文件的写

  • 可以对properties文件、txt文件进行写入
  • 但是,将数据写入txt文件仅仅是为了演示操作,不建议使用该方法将数据写入txt中
@Testpublic void test() throws Exception {// 1. 提供Properties实例对象Properties p = new Properties();// 2. 提供数据来写入文件p.setProperty("id", "1");p.setProperty("name", "Tom");p.setProperty("age", "18");// 3. 提供properties文件的输入流PrintStream ps1 = new PrintStream("doc\\aaa.txt");PrintStream ps2 = new PrintStream("doc\\jdbcTest.properties");// 3. 将内容输出到对应的输出流中p.list(ps1);p.list(ps2);}

4. 读取properties文件的模板

 public static void test() {try {// 1. 提供Properties实例对象Properties p = new Properties();// 2. 提供properties文件的输入流FileInputStream fs = new FileInputStream("doc\\jdbcTest2.properties");// 3. 读取文件p.load(fs);// 4. 获取对应的值String id = p.getProperty("id");String name = p.getProperty("name");String age = p.getProperty("age");// 5. 处理结果System.out.println("id = " + id);System.out.println("name = " + name);System.out.println("age = " + age);} catch (Exception e) {System.out.println("出错了!!!");e.printStackTrace();}}

Properties类和properties文件的简单总结相关推荐

  1. IO流技术【Properties类介绍、文件切割与合并】

    IO流技术[Properties类介绍.文件切割与合并] 1.Properties类介绍 1.1.Properties的基本功能 Properties特点: 1.Hashtable的子类,map集合中 ...

  2. 【应用】Properties类与Properties配置文件的读写

    1.Properties类与Properties配置文件 什么是Properties类 Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程 ...

  3. Properties类 解析xml文件问题

    使用Properties类的loadFromXml解析xml 报Document root element "student", must match DOCTYPE root & ...

  4. Java中的Properties类详解Properties配置文件

    1.Properties类是什么? Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常 ...

  5. 第三次学JAVA再学不好就吃翔(part114)--Properties类

    学习笔记,仅供参考,有错必纠 文章目录 Properties类 Properties类概述 Properties类的特殊功能 Properties的load和store功能 Properties类 P ...

  6. Java IO流中 File文件对象与Properties类(四)

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 boolean createNewFile():创建新文件,如 ...

  7. properties文件 , properties类, 的作用

    "properties文件",是java所支持的配置文件类型. java中的properties文件是一种配置文件, 主要用于表达配置信息, 文件类型为*.properties, ...

  8. Properties文件和Properties类

    Properties文件和Properties类 是什么 Properties文件 Properties类 简述 构造方法 基本的存储方法 与流相关的方法 Properties文件和Propertie ...

  9. Java---软件试用次数(Properties类的简单使用)

    编程练习(软件试用次数) 实现一个如下的软件小功能: 记录软件运行的次数并在每次运行时提示已经运行的次数.如果运行次数大于5次,软件不再运行并给出提示:试用次数已到,请注册! 本代码只简单的介绍了软件 ...

最新文章

  1. 三、单链表增删改查原理和代码实现
  2. php memcached 扩展下载,编译安装 PHP 的 Memcached 扩展
  3. CodeForces - 1332D Walk on Matrix(构造)
  4. 利用JS代码屏蔽指定地区访客浏览网站
  5. away3d 4.0.9Gold 学习笔记 加载方法总结(4)
  6. 29日直播丨 Oracle RMAN 单实例异机迁移恢复(版本:11GR2)
  7. Java基础学习总结(73)——Java最新面试题汇总
  8. Spring Security OAuth2.0_实现分布式认证授权_转发明文token给微服务_Spring Security OAuth2.0认证授权---springcloud工作笔记153
  9. html5中control,HTML5.(control-shift)
  10. 天津大学学硕和专硕的区别_21考研考生,学硕与专硕的区别你必须知道,选错或后悔读研...
  11. tensorflow2.0对应python版本_TensorFlow2.1.0最新版本安装详细教程
  12. 一步一步重构柔性数组和智能指针
  13. TransE,知识图谱嵌入(KGE)论文精读
  14. MySQL 数据库简介
  15. Linux事件驱动网络编程,Linux系统编程之事件驱动
  16. Java 9 Module的特性以及解决的问题
  17. 5G移动通信发展历程
  18. 男cd是啥意思_CD伪娘是什么意思?
  19. IE地址栏可输入的最大字符数
  20. 关于极光APP推送JPUSH的服务器端使用

热门文章

  1. 1333和1600能双通道吗_内存条8G、16G、32G实测大对比!告诉你应该这样选,学会了吗?...
  2. 阿里云SaaS加速器 “抗疫扶持”计划启动,多项政策助力SaaS行业
  3. 调用优酷视频的API,兼容手机和PC浏览器
  4. 水电图纸——照明平面图-5
  5. 用安兔兔测试小米11和红米K30,发现骁龙888发热相当严重
  6. 对象入参指定泛型类型,如何得到正确的MethodInfo对象当一个类使用泛型和泛型类型参数...
  7. e6r.top app.html,zhuoyao_radar/index_widesearch.html at master · keunsy/zhuoyao_radar · GitHub
  8. 大带宽、高速率接口对比---USB、PCIE、SATA、HDMI和以太网等接口
  9. 公众号文章中怎么添加承诺书附件下载?
  10. 微信公众号开发之返回按钮返回指定页面