10java进阶——IO2
Posted xinmomoyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10java进阶——IO2相关的知识,希望对你有一定的参考价值。
1. Properties类
Properties
类表示了一个持久的属性集。Properties
可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
特点:
- Hashtable的子类,map集合中的方法都可以用。
- 该集合没有泛型。键值都是字符串。
- 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
- 有和流技术相结合的方法。
- load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
-
store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
package cn.jxufe.java.chapter09.demo05; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import java.util.Set; /* * 集合对象Properties类,继承Hashtable,实现Map接口 * 可以和IO对象结合使用,实现数据的持久存储 */ public class Test01Property public static void main(String[] args) throws IOException // TODO Auto-generated method stub System.out.println("使用Properties集合,存储键值对:"); function(); System.out.println("\\nProperties集合特有方法 load:"); function_1(); System.out.println("\\nProperties集合的特有方法store:"); function_2(); /* * Properties集合的特有方法store * store(OutputStream out) * store(Writer w) * 接收所有的字节或者字符的输出流,将集合中的键值对,写回文件中保存 */ public static void function_2() throws IOException Properties properties = new Properties(); properties.setProperty("name", "zhaosi"); properties.setProperty("age", "31"); properties.setProperty("email", "[email protected]"); // 键值对,存回文件,使用集合的方法store传递字符输出流 FileWriter fr = new FileWriter("d:\\\\pro.properties"); properties.store(fr, "byZhao"); /* * Properties集合特有方法 load * load(InputStream in) * load(Reader r) * 传递任意的字节或者字符输入流 * 流对象读取文件中的键值对,保存到集合 */ public static void function_1() throws IOException Properties properties = new Properties(); FileReader fileReader = new FileReader("d:\\\\pro.properties"); // 调用集合的方法load,传递字符输入流 properties.load(fileReader); fileReader.close(); System.out.println(properties); /* * 使用Properties集合,存储键值对 * setProperty等同与Map接口中的put * setProperty(String key, String value) * 通过键获取值, getProperty(String key) */ public static void function() Properties properties = new Properties(); properties.setProperty("a", "1"); properties.setProperty("b", "2"); properties.setProperty("c", "3"); System.out.println(properties); String value = properties.getProperty("a"); System.out.println(value); // 方法stringPropertyNames,将集合中的键存储到Set集合,类似于Map接口的方法keySet Set<String> set = properties.stringPropertyNames(); for (String key : set) System.out.println(key + " " + properties.getProperty(key));
2.序列化流与反序列化流
用于从流中读取对象的
操作流 ObjectInputStream 称为 反序列化流
用于向流中写入对象的操作流 ObjectOutputStream 称为 序列化流
特点:用于操作对象。可以将对象写入到文件中,也可以从文件中读取对象。
以上是关于10java进阶——IO2的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段