Java NIO Tutorial

Java NIO

Java NIO基本组件如下:

https://www.wailian.work/images/2018/09/07/NIO-Components.pngNIO-Components

NIO Components

NIO Package

NIO vs. IO

Java IO和NIO之间的主要区别:

IO NIO
基于阻塞I/O操作 基于非阻塞I/O操作
面向流的 面向缓存的
通道不可用 通道可用于非阻塞I/O操作
选择器不可用 选择器可用于非阻塞I/O操作

通道和流之间的主要区别是:

  • 流可以用于单向数据传输
  • 通道提供双向数据传输

NIO Channels

  • ChannelDemo

NIO Buffers

  • BufferedReaderDemo

NIO Scatter/Gather

  • ScatterGatherIO

NIO Data Transfer

  • TransferDemo

NIO Selector

  • SelectorExample
  • Client

NIO SocketChannel

NIO ServerSocketChannel

NIO Pipe

  • PipeExample

NIO CharSet

  • CharsetExample

NIO Encode/Decode

  • CharsetExam

NIO Channels FileLock

  • FileLockExample
  • PrintFile