今天在工作做完之余,总结下这几天看的关于I/O:
1、I/O类分为文本I/O和二进制I/O。文本I/O将数据解释为字符的序列,二进制I/O将数据解释成原始的二进制数。
2、计算机并不区分文本文件和二进制文件,它们在计算机中都是以二进制格式来存储的。因此文本I/O是在二进制I/O基础上提供的一层抽象,它封装字符的编码和解码过程。
3、InputStream和OutPutStream类是所有二进制I/O类的根类。
FileInputStream和FileOutputStream类用于对文件实现二进制输入/输出。
下面的2个类分别继承于FilterInputStream和FilterOutputStream类
BufferedInputStream和BufferedOutputStream类可以包装二进制输入输出流以提高性能。
DataInputStream和DataOutputStream类可以用来读写基本类型数据和字符串。
ObjectInputStream和ObjectOutputStream类可以用于在文件中读写对象,也可以用来读写基本类型数据和字符 串。要使对象可序列化,对象必须实现java.io.Serializable标记性接口。
4、不是所有的对象都是可以序列化的:类中的静态变量;被加上了transient关键字的字段也是不能序列化的。
可以使用ObjectInputStream 和ObjectOutputStream类中的writeObject()和readObject()方法序列化数组。
注:
StringBuilder提供一个与StringBuffer兼容的API