Properties IO持久化

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

方法:

String getProperty(String key)

使用此属性列表中指定的键搜索属性。

String getProperty(String key, String defaultValue)

使用此属性列表中指定的键搜索属性。

void list(PrintStream out)

将此属性列表打印到指定的输出流。

void list(PrintWriter out)

将此属性列表打印到指定的输出流。

void load(InputStream inStream)

从输入字节流读取属性列表(键和元素对)。

void load(Reader reader)

以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。

void loadFromXML(InputStream in)

将指定输入流中的XML文档表示的所有属性加载到此属性表中。

Enumeration<?> propertyNames()

返回此属性列表中所有键的枚举,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。

Object setProperty(String key, String value)

如同 Hashtable方法 put 。

void store(OutputStream out, String comments)

将此属性列表(键和元素对)写入此 Properties表中,以适合于使用 load(InputStream)方法加载到 Properties表中的格式输出流。--comments就是文件的注释且只能为英文注释因为其为Unicode编码

void store(Writer writer, String comments)

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

Set stringPropertyNames()

返回此属性列表中的一组键,其中键及其对应的值为字符串,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。

将数据持久化-- store()

void store(OutputStream out, String comments)

将此属性列表(键和元素对)写入此 Properties表中,以适合于使用 load(InputStream)方法加载到 Properties表中的格式输出流。--comments就是文件的注释且只能为英文注释因为其为Unicode编码

void store(Writer writer, String comments)

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

使用步骤

1.创建Properties集合对象,添加数据

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

3.使用Properties集合中的store()方法,把properties集合中的临时数据,持久化到硬盘中存储

4.释放资源

示例:

static void properties_store() throws IOException {

        //创建properties对象
Properties prop = new Properties();
//存储字符串键值对
prop.setProperty("swagger", "ranger");
prop.setProperty("swagger1", "ranger1");
prop.setProperty("swagger2", "ranger2");
prop.setProperty("swagger3", "ranger3"); //这里直接在方法内new 输出流对象,就不用关闭流,因为方法执行完后会自动释放资源
prop.store(new FileWriter("./src/JavaCore/IO/FOSPROP.txt"), " new data");
/*try (
FileWriter fw = new FileWriter("./src/JavaCore/IO/FOSPROP.txt")
) {
//在Properties中存储键值对,键和值都是字符串
prop.setProperty("swagger", "ranger");
prop.setProperty("swagger1", "ranger1");
prop.setProperty("swagger2", "ranger2");
prop.setProperty("swagger3", "ranger3");
prop.store(fw, "sava data");
} catch (IOException e) {
System.out.println(e);
}*/
}

从硬盘里读取--load()

void load(InputStream inStream)

从输入字节流读取属性列表(键和元素对)。

void load(Reader reader)

以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。

使用步骤

1.创建 Properties 对象,

2.使用Properties对象的load()读取文件中的键值对

3.遍历集合

注意:

1.存储键值对的文件,键值默认使用=,空格或其他符号链接

2.文件中可以使用#进行注释,被注释的键值对不会再被读取

3.键值对中的键值都默认为字符串,不用加引号

4.如果格式不对即没有=,空格等分隔符,那么按行来分,每一行都会被当作key

5.输出set集合是不保证顺序的

示例:

static void properties_load() throws IOException {
//新建Properties对象
Properties prop = new Properties();
//使用对象读取文件数据
prop.load(new FileReader("./src/JavaCore/IO/FOSPROP.txt"));
//使用properties的stringpropertyNames()方法获取键的集合
Set<String> set = prop.stringPropertyNames();
//遍历键获取所有的键值对
for (String key: set) System.out.println(key + ":" + prop.getProperty(key));
}

本博客为Swagger-Ranger的笔记分享,文章会持续更新

文中源码地址: https://github.com/Swagger-Ranger

欢迎交流指正,如有侵权请联系作者确认删除: liufei32@outlook.com

最新文章

  1. wpf学习笔记
  2. 初识 Burp Suite
  3. iOS开发之UITapGestureRecognizer单双击
  4. JavaScrip的DOM操作(13号讲)
  5. RaidoGroup+RadioButton模拟android下拉框弹出List
  6. get与post区别
  7. protocol buffer VS 2013编译出错
  8. python 基础篇(一)--linux命令篇
  9. UVA 11475 Extend to Palindrome(后缀数组+ST表)
  10. 设置DIV根据内容自动调整高度的三个方法
  11. mybatis 查询 xml list参数
  12. malloc,calloc,realloc,alloc
  13. java + maven 实现发送短信验证码功能
  14. hdu-3416(最短路+网络流)
  15. CentOS 使用firewalld打开防火墙与端口
  16. catkin-make: command not found 错误解决
  17. spring boot web开发 简单的增删改查和spring boot 自带的Junit测试 案例
  18. 10进制 VS 2进制
  19. echarts属性的设置(完整大全)
  20. jQuery:SP.NET Autocomplete Textbox Using jQuery, JSON and AJAX

热门文章

  1. jQuery对象和DOM对象的互换
  2. LAMP 1.8默认虚拟主机
  3. Random简介
  4. 使用SwingWorker为界面执行异步任务
  5. 36、EST-SSR标记开发
  6. Linux中Root用户密码变更、密码忘记
  7. 《鸟哥的Linux私房菜》读书笔记4
  8. .net Core命令行,Json配置
  9. CodeForces 110C 【构造】
  10. 为什么MOBA和吃鸡类游戏不推荐用tcp协议 延迟不利于实时游戏