Java.util.Properties是集合类型,用于存储“键-值”对数据。
该集合不需要泛型,因为该集合中的“键-值”对都是String类型。通常应用于应用程序的配置信息为“键-值”对的配置文件
该集合类型中定义了load()、store()以及save()方法等,可以将文件中的键值对信息装载到集合对象中,或将集合对象中的键值对信息存入文件。
常用方法
存入键值对:setProperty(String key,String value);
获取键值对应的值:String getProperty(String key);String getProperty(String key,String defaultValue);
获取集合中所有键:Enumberation propertyNames();在jdk1.6版本给该类提供一个新的方法:Set<String> stringPropertyNames();
列出该集合中的所有键值对,可以通过参数—打印流指定列出到目的地;void list(PrintStream);或void list(PrintWriter);
注意:list()方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。Properties类在一个散列表(hashtable,事实上是一个Hashtable子类)中存储一组键值对,所以不能保证顺序。
IO包中的其他对象
打印流
PrintStream:在OutputStream基础上提供了增前的功能,既可以方便的输出各种类型的数据(而不仅限于byte类型)的格式化表现形式。
构造方法:PringStrea可以作为节点流使用而直接关联到文件数据源,也可以作为处理流关联到其他的字节输出流并向其输出数据提供增强的功能。PrintStream(File file)
PringStream的方法不抛IOException,而是在异常的情况下设置一个内部标志,可以通过成员方法checkError()测试次标志的质疑表明能否出现异常。
System.out就是一个PrintStream类型的对象。
PrintWriter:和PrintStream相似,区别在于:作为处理流使用时,PrintStream只能封装OutputStream类型的字节输出流,而PrintWriter既可以封装OutputStream,还能够封装Writer类型字符输出流并增强其功能。
DataInputStream:属于处理流,他能够以一种与机器无关的方式,直接从底层字节输入流读取Java基本数据类型和String类型的数据。
DataOutputStream:能够直接将Java基本类型数据写出其他的字节输出流,随后可以使用DataInputStream输入流读取这些数据
对象的序列化
对象序列化是指将对象的状态数据以字节流的形式进行处理,一般用于实现对象的持久性,即长久保持一个对象的状态并在需要是获取该对象的信息已重新构造一个状态完全相同的对象。
注意:
并不是任何引用类型的对象都可以被序列化,只有实现了java.io.Serializable接口的类的对象才可以。--出于安全性考虑,因为一些封装敏感信息或时效性强的信息的类不建议支持序列化,以避免出现泄密或信息时效问题。