Java Nio 线程

Wesley13
• 阅读 558
  • Java NIO(New IO)是从Java 1.4版本开始引入的  一个新的IO API,可以替代标准的Java IO API。  NIO与原来的IO有同样的作用和目的,但是使用  的方式完全不同,NIO支持面向缓冲区的、基于  通道的IO操作。NIO将以更加高效的方式进行文  件的读写操作

  • Java NIO 与 IO 的主要区别 

    IO

    NIO

     

    面向流(Stream Oriented)

    面向缓冲区(Buffer Oriented)

     

    阻塞IO(Blocking IO)

    非阻塞IO(Non Blocking IO)

     

  • java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到IO设备(例如:文件、套接字)的连接。如需要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区,然后操作缓冲区,对数据进行操作

  • 缓冲区(Buffer):一个用于特定基本数据类 型的容器。由 java.nio 包定义的,所有缓冲区 都是 Buffer 抽象类的子类。

  • Java NIO 中的 Buffer 主要用于与 NIO 通道进行 交互,数据是从通道读入缓冲区,从缓冲区写 入通道中的。

    Buffer 就像一个数组,可以保存多个相同类型的数据。根  据数据类型不同(boolean 除外) ,有以下 Buffer 常用子类:

          ByteBuffer  

          CharBuffer  

          ShortBuffer  

          IntBuffer  

         LongBuffer  

          FloatBuffer

          DoubleBuffer  

上述 Buffer 类 他们都采用相似的方法进行管理数据,只是各自  管理的数据类型不同而已

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
Java NIO和IO的区别
IO               NIO面向流           面向缓冲阻塞IO           非阻塞IO无               选择器面向流与面向缓冲JavaNIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。JavaIO面向流意味着每次从流中
Wesley13 Wesley13
2年前
JAVA NIO(一)
1NIO概述1.1NIO(newIO)是一个可以替代javaIOAPI的API,NIO提供了与标准IO不同的工作方式,标准IO是基于字节流和字符流进行操作的,而NIO是基于channel和Buffer进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写到通道中,方式如例图示,JAVANIO的几个核心组成部分是channels,Buf
Wesley13 Wesley13
2年前
Java NIO学习笔记
JavaNIO是什么JavaNIO(NewIO)是从Java1.4版本开始引入的一个新的IOAPI,可以替代标准的JavaIOAPI。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。JavaNIO与IO
Wesley13 Wesley13
2年前
Java NIO:IO与NIO的区别
 一、概念    NIO即NewIO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在JavaAPI中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了JavaIO和NIO之
Wesley13 Wesley13
2年前
JAVA NIO入门(一)
一、JAVANIO概念  JAVANIO是从JDK1.4就开始有的,之前只用过IO流,其实NIO和IO一样都是可以用来读取或者写入文件,只不过原来的IO是面向流进行操作的,而NIO是面向缓冲区进行操作二、通过一个小例子初步了解下NIO如何进行文件读写 !(https://oscimg.oschina.net/oscnet/
Wesley13 Wesley13
2年前
Java NIO
简介引入NIO的原因1.因为BIO都是阻塞的IO,为了使Java能支持非阻塞I/O,JDK引入了NIO,可以将NIO理解成是NonblockI/O.(也有书说是newIO)2.BIO编程中,每当有一个新的客户端请求过来时,服务器端必须创建一个新的线程处理新接入的客户端链路,一个线程只能处理一个客户端连接,在并发量
Wesley13 Wesley13
2年前
Java IO之NIO原理解析以及代码演示
一、JavaNIO几个核心部分ChannelBufferSelector二、IO和NIO的区别IO基于流(Streamoriented),而NIO基于Buffer(Bufferoriented)在一般的JavaIO操作中,我们以流式的方式顺序地从
Wesley13 Wesley13
2年前
NIO 非阻塞IO
NIO与IO的区别NIO特点:非阻塞,面向缓冲区IO特点:阻塞式,面向流阻塞与非阻塞javaio是阻塞式的,当一个线程调用read或者write方法后开始阻塞,直到读取到数据或者写入数据完成,该线程一直处于阻塞状态不能做其他事情。javanio通过选择器实现非阻塞式IO,通过一个专门的选
Wesley13 Wesley13
2年前
Java Nio
(1)NIOa)  Nio之所以比旧的io速度快是因为,nio使用的结构更接近于系统操作执行io的操作:通道和缓冲器.(2)如何操作nio读写数据Nio读写方式可以想象成:数据源和数据目的地是煤矿与煤场,通道想象成告诉公路,缓冲器是卡车,nio中的FileChannel是装卸煤用的工具,ByteBuffer是装煤用的卡车.在新的io中我们不对通道