NIO的基本概念和缓冲区

简介: NIO的基本概念和缓冲区

NIO:

缓冲区:

在NIO库中,所有的数据都是用缓冲区处理的,在读取数据时,它是直接读到缓冲区的,在写入数据时,它是写入到缓冲区的,任何时候访问NIO中的数据,你都是将它放到缓冲区中。

缓冲区实质上是一个数组,通常它是一个字节数组,但是也可以使用其他种类的数组,但是一个缓冲区不仅仅是一个数组,缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读写进程

缓冲区类型:

最常用的缓冲区类型是ByteBuffer。一个ByteBuffer可以在其底层字节数组上进行get/set操作(即字节的获取和设置)。ByteBuffer不是NIO中唯一的缓冲区类型,事实上,对于每一种基本java类型都有一种缓冲区类型

相关代码

public class Test14 {
    public static void main(String[] args) {
        //创建一个字节缓冲区,申请内存空间为8个字节
        ByteBuffer buf = ByteBuffer.allocate(10);
        System.out.println("position=" + buf.position());//0
        System.out.println("limit=" + buf.limit());//10
        System.out.println("capacity=" + buf.capacity());//10
        System.out.println("-------------------");
        // 向缓冲区中写入数据
        buf.put((byte) 12);
        buf.put((byte) 13);
        buf.put("lalla".getBytes());
        System.out.println("position=" + buf.position());//7
        System.out.println("limit=" + buf.limit());//10
        System.out.println("capacity=" + buf.capacity());//10
        System.out.println("-------------------");
        //缓冲区反转
        buf.flip();
        System.out.println("position=" + buf.position());//0
        System.out.println("limit=" + buf.limit());//7
        System.out.println("capacity=" + buf.capacity());//10
        // 告知当前位置和标记位置是否有元素
        if (buf.hasRemaining()) {
            for (int i = 0; i < buf.remaining(); i++) {
                System.out.println(buf.get(i));
            }
        }
    }
}


目录
相关文章
|
4天前
|
存储 编解码 移动开发
技术笔记:NIO流—理解Buffer、Channel概念和NIO的读写操作
技术笔记:NIO流—理解Buffer、Channel概念和NIO的读写操作
13 1
|
2月前
|
编解码 网络协议
Netty基础篇:NIO中缓冲区设置太小
Netty基础篇:NIO中缓冲区设置太小
|
2月前
|
存储 网络协议 Java
NIO - 基础入门之通道和缓冲区
NIO - 基础入门之通道和缓冲区
61 0
Java Nio (三):直接缓冲区 和 非直接缓冲区
Java Nio (三):直接缓冲区 和 非直接缓冲区
Java Nio (三):直接缓冲区 和 非直接缓冲区
|
Java
Java NIO 中的 Buffer 缓冲区详解(下)
Java NIO 中的 Buffer 缓冲区详解
167 0
Java NIO 中的 Buffer 缓冲区详解(下)
J3
|
Java API
详解,NIO中的缓冲区
NIO 的出现就是为了解决传统 IO 上的不足,而 NIO 三大组件中的缓冲区就是提高效率的组件之一。 在 NIO 中缓冲区是占据着非常重要的地位,因为数据就放在缓冲区中,对数据的 CRUD 操作都是对缓冲区的操作,所以缓冲区操作的对于否都直接关系到最终结果的正确性。 下面就开始了解它把!
J3
134 0
详解,NIO中的缓冲区
|
存储 Java 容器
Java NIO 中的 Buffer 缓冲区详解(上)
Java NIO 中的 Buffer 缓冲区详解
371 0
Java NIO 中的 Buffer 缓冲区详解(上)
|
缓存 网络协议 安全
Java 的I/O、NIO ,Java IO 模型,Unix 网络 IO 模型等相关概念的解析
java Io流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java Io流的40多个类都是从如下4个抽象类基类中派生出来的。
Java 的I/O、NIO ,Java IO 模型,Unix 网络 IO 模型等相关概念的解析
|
缓存 Java API
摸鱼不如来了解一下--Java中IO和NIO概念和区别
一、IO和NIO的概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。
103 0
|
网络协议 索引
【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作
【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作
125 0
【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作