12, IO 总结
1, Java IO 各类间的继承关系图
2, 在 Java 中使用 File 类表示文件本身,可以直接用该类完成文件的创建,删除等操作。
3, RandomAccessFile 类可以从指定的位置开始读取信息,但是要求文件中各个数据的保存长度必须固定。
4, 输入/输出流, 字节流 : OutputStream, InputStream(未用到缓冲区)。字符流 : Writer, Reader (使用到缓冲区)
5, 在 IO 包中,可以使用 OutputStreamWriter 和 InputStreamReader 完成字符流与字节流之间的转换操作
6, 使用 ByteArrayInputStream 和 ByteArrayOutputStream 类 可以对内存进行输入/输出操作
7, 在线程之间进行输入/输出操作,主要使用 PipedOutputStream 和 PipedInputStream 类
8, 在 IO 中输出,使用打印流 (PrintStream, PrintWriter),可以方便的输出各种类型的数据。
9, System 类提供了 3 个支持 IO 操作的常量。即 : out, err, in
System.out, System.err, System.in, -- setOut, setIn, setErr
10, BufferReader 可以直接从缓冲区中读取数据
11, Scanner 类,可以方便地进行输入流操作
12, 数据操作流提供了与平台无关的数据操作, 主要 : DataOutputStream 和 DataInputStream
13, 使用合并流 (SequenceInputStream) 可以将两个文件的内容进行合并
14, 其他 : 压缩流, 回退流,
15, 造成乱码的根本原因在于 : 程序编码 与 本地编码 的不统一
16, 对象序列化可以将内存中的对象转化为二进制数据,但对象所在的类必须实现 Serializable 接口。transient,此属性内容不会被序列化
17, 对象的输入输出主要使用 ObjectInputStream 和 ObjectOutputStream 类。