xnio java_java基础篇---新I/O技术(NIO)

在JDK1.4以前,I/O输入输出处理,我们把它称为旧I/O处理,在JDK1.4开始,java提供了一系列改进的输入/输出新特性,这些功能被称为新I/O(NEW I/O),新添了许多用于处理输入/输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类以NIO为基础进行了改写,新添了满足新I/O的功能。

Java NIO和IO的主要区别

IO

NIO

面向流

面向缓冲

阻塞IO

非阻塞IO

选择器

面向缓冲(Buffer)

在整个Java的心I/O中,所以操作都是以缓冲区进行的,使操作的性能大大提高。

操作

在Buffer中存在一系列的状态变量,这状态变量随着写入或读取都可能会被概念,在缓冲区开元使用是三个值表示缓冲区的状态。

position:表示下个缓冲区读取或写入的操作指针,没向缓冲区中华写入数据的时候 此指针就会改变,指针永远放在写入的最后一个元素之后。即:如果写入了4个位置的数据,则posotion会指向第5个位置。

Limit:表示还有多少数据可以存储或读取,position<=limit

capacity:表示缓冲区的最大容量,limit<=capacity,此值在分配缓冲区时被设置。一般不改变。

创建缓冲区:

importjava.nio.IntBuffer ;public classIntBufferDemo{public static voidmain(String args[]){

IntBuffer buf= IntBuffer.allocate(10) ; //准备出10个大小的缓冲区

System.out.print("1、写入数据之前的position、limit和capacity:") ;

System.out.println("position = " + buf.position() + ",limit = " + buf.limit() + ",capacty = " +buf.capacity()) ;int temp[] = {5,7,9} ;//定义一个int数组

buf.put(3) ; //设置一个数据

buf.put(temp) ; //此时已经存放了四个记录

System.out.print("2、写入数据之后的position、limit和capacity:") ;

System.out.println("position = " + buf.posit

你可能感兴趣的:(xnio,java)