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", "13657914425@163.com"); // 键值对,存回文件,使用集合的方法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,properties,setProperty,键值,集合,Properties,IO2,out 来源: https://www.cnblogs.com/xinmomoyan/p/10972268.html