在Java中,NIO读写是I/O的基本过程。 从通道读取:创建一个缓冲区,然后请求通道读取数据。通道写入:创建一个缓冲区,填充数据,并要求通道写入数据。

读写操作的核心部件:

  • Channels
  • Buffers
  • Selectors
    Java NIO还有其它更多的组件和类,但是Channel,Buffer和Selector用作API的核心。

通道和缓冲区

读取操作:
Java NIO组件
数据写入操作:
Java NIO组件

通道列表:

在Java NIO中,主要使用的通道如下:

  • DatagramChannel
  • SocketChannelFile
  • ChannelServer
  • SocketChannel
    上述通道涵盖UDP(用户数据报协议)+ TCP(传输控制协议)网络I/O和文件I/O。

缓冲列表

  • CharBuffer
  • DoubleBuffer
  • IntBuffer
  • LongBuffer
  • ByteBuffer
  • ShortBuffer
  • FloatBuffer
    上述缓冲区覆盖了通过I/O发送的基本数据类型:characters,double,int,long,byte,short和float。

选择器

Java NIO提供了“选择器”的概念。这是一个可以用于监视多个通道的对象,如数据到达,连接打开等。因此,单线程可以监视多个通道中的数据。如果应用程序有多个通道(连接)打开,但每个连接的流量都很低,则可考虑使用它。 例如:在聊天服务器中。下面来看看线程使用选择器来处理3个通道,如下图所示:
Java NIO组件

相关文章:

  • 2021-09-18
  • 2022-02-14
  • 2022-02-10
  • 2021-08-17
  • 2021-06-08
  • 2022-12-23
猜你喜欢
  • 2022-01-08
  • 2021-12-29
  • 2021-05-09
  • 2021-06-13
  • 2022-01-13
相关资源
相似解决方案