**标准的输入输出流**
System.in:标准的输入流,默认从键盘输入
System.out:标准的输出流,默认从控制台输出
System类的SetIn(InputStream is)\SetOut(PrintStream ps)方式重新指定输入和输出的流
打印流
PrintStream、PrintWriter
提供一系列重载的print()和println()
数据流
DataInputStream、DataOutputStream
用于读取或写出基本数据类型的变量或字符串
注意:读取不同类型数据的顺序要与当初写入文件时保存的数据的顺序要一致
对象的序列化机制
把内存中的Java对象转换为平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。
当其他程序获取了这种二进制流,就可以恢复为原来的Java对象
可序列化的类需要满足的要求
需要实现接口:Serializable
当前类提供一个全局常量:serialVersionUID
当前类内部的所有属性皆是可序列化的(默认情况下,基本数据类型可序列化)
对象流
ObjectInputStream 、ObjectOutputStream
用于读取和存储基本数据类型数据或对象的处理流
随机存取文件流
RandomAccessFile直接继承于java.lang.Object类,实现了DataInput和DataOutput接口
RandomAccessFile既可以作为一个输入流又可以作为一个输出流
如果RandomAccessFile作为输出流时,写出到的文件不存在,则在执行过程中自动创建。
如果写出到的文件存在,则会对原有文件内容进行覆盖(默认情况下从头覆盖)