JavaIO历史

前置知识:

  1. JCP(Java Community Process)是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。
  2. JSR(Java Specification Requests)是早期提议和最终发布的Java平台规范的具体描述。通常,一个新的JSR的提出是为了增加或者规范Java平台的功能。某个具体的JSR由专家组共同来制定,工作由组长协调。
  3. JSR完成后,相关的规范及JavaAPI会在JCP的官方网站发布。设备制造商可以在自己的产品中进行实现。但是这些实现都必须通过TCK(Technology Compatibility Kit)测试以确保技术兼容性。
  • JDK1~JDK3,IO类库非常原始,只有同步阻塞模型

  • 2002年 的 JDK1.4,NoneBlocking IO 以 JSR-51 标准随 JDK发布,新增了 java.nio 包,(这个nio 指的是New IO,原来的叫 OIO,Old IO)

    • ByteBuffer
    • Pipe
    • Channel
    • 字符集的编解码
    • Selector
    • 正则表达式
    • FileChannel
  • 新的 NIO类库促进了基于 Java 应用的发展,但依然不够完善,特别是对文件 IO 部分

  • 2011年7月28日 的 JDK1.7,NIO.2(新IO的第二个版本) 由 JSR-203 演进而来

    • 提供能够批量获取文件属性的API
    • 提供标准文件系统的SPI(Service Provider Interface)
    • 提供 AIO
      • AsynchronousChannel
        • AsynchronousSocketChannel
        • AsynchronousServerSocketChannel
        • AsynchronousFileChannel
        • AsynchronousDatagramChannel
      • CompletionHandler
      • AsynchronousChannelGroup
    • 完成 JSR-51 定义的通道功能,包括 配置和多播数据报 的支持等