一、输入及输出
I : input 输入
O : output 输出
二、File类
File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代
表一个文件或目录。
File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。
方法:

三、字节流与字符流
I/O流按照读取数据方式不同进行分类可分为字节流与字符流
其中,字符流只能读取纯文本文件
字节流InputStream 常用类 字节输入流 FileInputStream
OutputStream 字节输出流 FileOutputStream
字符流Reader 常用类 字符输入流 FileReader
Writer 字符输出流 FileWriter
四、输入输出节点字节流


五、节点流与处理流
根据封装类型不同流又分为节点流 处理流
节点流:如果流封装的是某种特定的数据源,如文件、字符串、字符串数组等,则称为节点流。
处理流:如果流封装的是其它流对象,称为处理流。 处理流提供了缓冲功能,提高读写效率。
处理流中常用类
缓冲字节输出流 BufferedOutputStream
缓冲字节输入流 BufferedInputStream
缓冲字符输入流 BufferedReader
缓冲字符输出流 BufferedWriter
六、输入输出节点字符流


七、Print流
只做输出没有输入 打印流分为字节打印流和字符打印流
PrintWriter:字符打印流 print方法可以打印各种类型数据
在javaweb项目中,服务器端向客户端响应数据以打印流的方式响应.
八、对象输入输出流
对象的寿命通常随着生成该对象的程序的终止而终止。 有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。
对象的输入输出流主要的作用是用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化。
对象的输出流:ObjectOutputStream
对象的输入流:ObjectInputStream
在ObjectInputStream 中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中
对象的序列化:对象的输出流将指定的对象写入到文件的过程
对象的反序列化:对象的输入流将指定序列化好的文件读出来的过程
被序列化对象的类必须要实现 Serializable接口。 Serializable接口中没有任何
方法。当一个类声明实现Serializable接口后,表明该类可被序列化。在类中可以生成一个编号
eg:private static final long serialVersionUID = -5974713180104013488L;
随机生成 唯一的 serialVersionUID 用来表明实现序列化类的不同版本
间的兼容性。某个类在与之对应的对象已经序列化出去后做了修改,该
对象依然可以被正确反序列化.
如果不显示生成序列号,那么将会隐式生产,但是隐式生成后,类一旦发生
改变,序列号也会随之改变
transient关键字
默认情况下当执行了对象序列化的时候会将类中的全部属性的内容进行全部的序列化操作,
但是很多情况下有一些属性可能并不需要序列化的处理,这个时候就可以在属性的定义上使
用transient关键字来完成了。
eg:private transient String name;