Java中Properties集合

喜欢ヅ旅行 2023-10-18 22:07 173阅读 0赞

目录

一、Properties概述

1、API简介

2、概述

3、Properties中的一些操作字符串的特有方法

①String getProperty(String key)

②Object setProperty(String key, String value)

③Set stringPropertyNames()

4、代码演示

二、Properties中的store方法

1、作用

2、store方法

①void store(OutputStream out, String comments)

②void store(Writer writer, String comments)

参数说明:

3、使用步骤

4、代码演示

代码:

运行结果:

三、Properties中的load方法(重点)

1、作用

2、load方法

①void load(InputStream inStream)

②void load(Reader reader)

3、使用步骤

4、注意

5、代码演示

代码:

运行结果:


一、Properties概述

1、API简介

①Properties 类表示了一个持久的属性集;

②Properties 可保存在流中或从流中加载;

③属性列表中每个键及其对应值都是一个字符串;

2、概述

①Properties集合是唯一一个跟IO结合的集合;

②可以使用Properties的store方法,把集合的临时数据,持久化地写入到硬盘中;

③可以使用Properties的load方法,把硬盘中保存的文件(键值对),读取到内存中使用;

④属性列表中每个键和对应的值都是一个字符串;

⑤Properties是双列集合,键和值默认都是字符串;

⑥Properties有一些操作字符串的特有方法;

3、Properties中的一些操作字符串的特有方法

①String getProperty(String key)

用指定的键在此属性列表中搜索属性;

②Object setProperty(String key, String value)

调用 Hashtable 的方法 put;

③Set stringPropertyNames()

返回此属性列表中的键集;

4、代码演示

  1. package study.io;
  2. import java.util.Properties;
  3. import java.util.Set;
  4. public class PropertiesTest {
  5. public static void main(String[] args) {
  6. Properties properties = new Properties();
  7. properties.setProperty("大哥","185");
  8. properties.setProperty("二哥","182");
  9. properties.setProperty("三哥","179");
  10. properties.setProperty("小弟","168");
  11. Set<String> strings = properties.stringPropertyNames();
  12. for (String key : strings) {
  13. System.out.println(key+"=="+properties.getProperty(key));
  14. //二哥==182
  15. //大哥==185
  16. //三哥==179
  17. //小弟==168
  18. }
  19. }
  20. }

二、Properties中的store方法

1、作用

可以将内存中的临时数据写入到硬盘中存储;

2、store方法

①void store(OutputStream out, String comments)

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

②void store(Writer writer, String comments)

以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符;

参数说明:

OutputStream:字节输出流,不能写入中文;

Writer:字符输出流,可写入中文;

String:注释(不能使用中文,会乱码,因为默认是Unicode编码,一般使用””空字符串),用来解释说明保存的文件是做什么用的;

3、使用步骤

①创建Properties集合对象,添加数据;

②创建字节输出流/字符输出流对象,构造方法中绑定输出的目的地;

③使用Properties中的store方法,可以将内存中的集合的临时数据写入到硬盘中存储;

④释放资源;

4、代码演示

代码:

  1. package study.io;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.util.Properties;
  5. public class PropertiesTest {
  6. public static void main(String[] args) throws IOException {
  7. //①创建Properties集合对象,添加数据;
  8. Properties properties = new Properties();
  9. properties.setProperty("大哥","185");
  10. properties.setProperty("二哥","182");
  11. properties.setProperty("三哥","179");
  12. properties.setProperty("小弟","168");
  13. //②创建字节输出流/字符输出流对象,构造方法中绑定输出的目的地;
  14. FileWriter fileWriter = new FileWriter("C:\\Users\\Administrator\\Desktop\\test.txt");
  15. //③使用Properties中的store方法,可以将内存中的集合的临时数据写入到硬盘中存储;
  16. properties.store(fileWriter,"");
  17. //④释放资源;
  18. fileWriter.close();
  19. }
  20. }

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5Njg5MzQz_size_16_color_FFFFFF_t_70

三、Properties中的load方法(重点)

1、作用

把硬盘中保存的文件(键值对),读取到内存中使用;

2、load方法

①void load(InputStream inStream)

从输入流中读取属性列表(键和元素对);

②void load(Reader reader)

按简单的面向行的格式从输入字符流中读取属性列表(键和元素对);

参数说明:

InputStream:字节输入流,不能读取带有中文的键值对集合;

Reader:字符输入流,能读取带有中文的键值对集合;

3、使用步骤

①创建Properties集合对象;

②使用Properties集合对象的load方法读取保存键值对的文件;

③遍历Properties集合;

4、注意

①存储键值对的文件中,键与值默认的连接符号可以使用=,空格(或其他符号);

②存储键值对的文件中,可以使用#进行注释,被注释的键值对不对再被读取;

③存储键值对的文件中,键与值默认都字符串,不要再加引号;

5、代码演示

代码:

  1. package study.io;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4. import java.util.Properties;
  5. import java.util.Set;
  6. public class PropertiesTest {
  7. public static void main(String[] args) throws IOException {
  8. //①创建Properties集合对象;
  9. Properties properties = new Properties();
  10. //②使用Properties集合对象的load方法读取保存键值对的文件;
  11. FileReader fileReader = new FileReader("C:\\Users\\Administrator\\Desktop\\test.txt");
  12. properties.load(fileReader);
  13. //③遍历Properties集合;
  14. Set<String> set = properties.stringPropertyNames();
  15. for (String s : set) {
  16. System.out.println(s+"对应的值为"+properties.getProperty(s));
  17. }
  18. }
  19. }

运行结果:

  1. 二哥对应的值为182
  2. 大哥对应的值为185
  3. 三哥对应的值为179
  4. 小弟对应的值为168

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaProperties

    一、Java Properties类     Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种