15.0 疯狂java讲义 第4版 第15章 前言

本章要点

  • 使用File类访问本地文件系统
  • 使用文件过滤器
  • 理解IO流的模型和处理方式
  • 使用IO流执行输入、输出操作
  • 使用转换流将字节流转换为字符流
  • 推回流的功能和用法
  • 重定向标准输入、输出
  • 访问其他进程的输入、输出2
  • RandomAccessFile的功能和用法
  • 对象序列化机制和作用
  • 通过实现Serializable接口实现序列化
  • 实现定制的序列化
  • 通过实现Externalizable接口实现序列化
  • JavaIO的概念和作用
  • 使用BufferChannel完成输入、输出
  • Charset的功能和用法
  • FireLock的功能和用法
  • NIO.2的文件IO和文件系统
  • 通过NIO.2监控文件变化
  • 通过NIO.2访问、修改文件属性

输入输出有什么用

使用输入机制

  • 程序可以读取外部数据(包括来自磁盘、光盘等存储设备的数据)、
  • 程序可以读取用户输入的数据;

使用输出机制

  • 程序可以记录运行状态,可以将数据输出到磁盘、光盘等存储设备中。

字节流 字符流

JavaIO通过java.io包下的类和接口来支持,在java.io包下主要包括输入输出两种IO流。
每种输入、输出流又可分为字节流字符流两大类。其中

  • 字节流以字节为单位来处理输入、输出操作,
  • 而字符流则以字符来处理输入、输出操作。

节点流 处理流

除此之外,JavaIO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流,其中

  • 节点流用于和底层的物理存储节点直接关联:不同的物理节点获取节点流的方式可能存在一定的差异,
  • 程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源.

Java7的NIO 2

Java 7java.nio及其子包下提供了一系列全新的API,这些API是对原有新IO的升级,因此也被称为NIO 2,通过这些NIO 2,程序可以更高效地进行输入、输出操作。本章也会介绍Java 7所提供的NIO 2

对象序列化

除此之外,本章还会介绍java对象的序列化机制,使用序列化机制可以把内存中的java对象转换成二进制字节流,这样就可以把java对象存储到磁盘里,或者在网络上传输java对象。这也是java提供分布式编程的重要基础。