一.概念图
二.详细解释
One:文件输入/输出流
(1)FileInputStream类(文件读入)和FileOutputStream类(文件写入)
两个类都用于操作磁盘文件。如果用户的文件读取需求较简单,则可以用FileInputStream类,该类继承InputStream类。FileOutputStream类与FileInputStream类对应,提供了基本的文件写入能力。FileOutputStream类是OutputStream类的子类。
FileIntStream类常用构造方法:
1.FileInputStream(String name) //使用给定的文件名name创建相关对象
2.FileInputStream(File file) //使用File对象创建相关对象
FileOutStream类具有与上述类相同的构造方法。此对象可以指定不存在的文件名,但不能是一个已被其他程序打开的文件。
示例如下:
上述文件既可以创建也可以不创建。
(2)FileReader类和FileWriter类
这里主要是用于解决上面的两个类出现的读取不好时会出现了乱码的现象,FileReader类和FileWriter类分别对应FileInputStream类和FileOutputStream类。
以下是代码示例:
Two:带缓存的输入/输出流
(1) BufferefInputStream类和BufferedOutputStream类
BufferInputStream类可以对所有InputSream类进行带缓存区的包装以达到性能的优化。BufferInputStream类有两个构造方法:
BufferedInputStream(InputStream in).
BufferedInputStream(InputStream in, int size)。
相对应的BufferOutputStream类输出信息和仅用的OutStream类输出信息完全一样,不过是多了一个flush()方法用于将缓存区的数据强制输出。BufferedOutputStream类也有两个构造方法:
BufferedOutputStream(InputStream in)。
BufferedfOutputStream(InputStream in, int size)。
(2)BufferedReader类BufferedWriter类
Three:数据输入/输出流
DataInputStream类与DataOutputStream类
Four:对象序列化输入/输出流
ObjiectOutputStream类的对象用于序列化一个对象。ObjectInputStream类的对象用于反序列化一个对象。ObjectOutputStream类继承自OutputStream类。ObjectInputStream类继承自InputStream类。一个类只有实现Serializable或Externalizable接口,才能被序列化和反序列化。Serializable接口是一个标记接口。例如,序列化一个Book类对象的代码如下:
(1)序列化对象:
序列化一个Book类对象需要执行以下部分:
1.创建ObjectOutputStream类的对象,并将对象保存到book.ser文件中。
2.将对象保存到ByteArrayOutputStream类中,并构造一个对象输出流。
3.使用ObjectOutputStream类的writeObject()方法序列化对象。
4.关闭对象输入流。
(2)反序列化对象:
反序列化一个Book类对象需要执行如下步骤:
1.常见ObjectInputStream类的对象,从book.ser文件中读取对象
2.从ByteArrayInputStream类中读取对象,创建一个对象输入流
3.使用ObjectInputStream类的readObject()方法反序列化对象
4.关闭对象输入流