碰到java.nio.Buffer flip()方法,不明白是干什么用的,于是就赶快查看中文API,API上面翻译的是:"反转此缓冲区。首先对当前位置设置限制,然后将该位置设置为零。如果已定义了标记,则丢弃该标记。";

  buffer中的flip方法涉及到bufer中的Capacity,Position和Limit三个概念。其中Capacity在读写模式下都是固定的,就是我们分配的缓冲大小,Position类似于读写指针,表示当前读(写)到什么位置,Limit在写模式下表示最多能写入多少数据,此时和Capacity相同,在读模式下表示最多能读多少数据,此时和缓存中的实际数据大小相同。

在写模式下调用flip方法,那么limit就设置为了position当前的值(即当前写了多少数据),postion会被置为0,以表示读操作从缓存的头开始读。也就是说调用flip之后,读写指针指到缓存头部,并且设置了最多只能读出之前写入的数据长度(而不是整个缓存的容量大小),为输出数据做好准备。

java.nio.Buffer flip()方法相关推荐

  1. java.nio.Buffer 中的 flip()方法

    在Java NIO编程中,对缓冲区操作常常需要使用  java.nio.Buffer中的 flip()方法. Buffer 中的 flip() 方法涉及到 Buffer 中的capacity.posi ...

  2. java nio.Buffer的属性变化

    java nio.Buffer的属性变化 认识Buffer Channel 提供从文件.网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer.Buffer,实际上是一个连续数组. 常用的 ...

  3. buffer.flip()方法

    buffer.flip()方法 简述 简言之,反转缓冲区写后读:用于buffer缓存对象内容填写后,转为读模式.(写进buffer后再flip(),可以读出buffer中的数据) 玩法 这东西的玩法, ...

  4. Java NIO ———— Buffer 缓冲区详解

    引言 缓冲区是一个用于特定基本类型的容器.由java.nio 包定义,所有缓冲区都是 Buffer 抽象类的子类. Java NIO 中的 Buffer ,主要用于与NIO 通道进行交互.数据从通道存 ...

  5. JAVA NIO - Buffer Channel

    2019独角兽企业重金招聘Python工程师标准>>> Buffer和Channel是NIO中的基本对象,凡是涉及到I/O的操作都都会用到Buffer和Channel. Channe ...

  6. 关于java.nio.Buffer的API

    Buffer操作是Java NIO应用开发的基础,以下介绍Buffer操作的相关参数以及操作说明. 浏览全文 转载于:https://www.cnblogs.com/ungshow/archive/2 ...

  7. Buffer flip()方法用法

    Buffer既可以用来读和写.如下: public class NioTest {public static void main(String[] args) {// 分配内存大小为10的缓存区Int ...

  8. java.nio.ByteBuffer中flip、rewind、clear方法的区别

    对缓冲区的读写操作首先要知道缓冲区的下限.上限和当前位置.下面这些变量的值对Buffer类中的某些操作有着至关重要的作用: limit:所有对Buffer读写操作都会以limit变量的值作为上限. p ...

  9. [转] java.nio.ByteBuffer中flip、rewind、clear方法的区别

    转载 对缓冲区的读写操作首先要知道缓冲区的下限.上限和当前位置.下面这些变量的值对Buffer类中的某些操作有着至关重要的作用: limit:所有对Buffer读写操作都会以limit变量的值作为上限 ...

最新文章

  1. python做啥用-python主要用于做什么
  2. 关于C语言运算符优先级的记忆技巧是什么?
  3. Dreamweaver——模板与库
  4. php 情书,PHP好玩的代码一(笛卡尔的情书)
  5. odps结合mysql统计
  6. Druid如何自动根据URL自动识别DriverClass的
  7. 恐龙机器人钢索恐龙形态_迷你世界新皮肤登场!变形金刚系列第9款,网友:恐龙形态霸气...
  8. node --- 监听路由,读取json文件,向MongoDB中写入数据
  9. vCenter线上操作磁盘扩容
  10. C# 对Ini文件操作(C# ini文件操作类)
  11. 我给女朋友讲编程html系列(1) -- Html快速入门
  12. Bailian2976 Bailian1936 All in All【字符串匹配】
  13. (转)苹果推送通知服务教程 Apple Push Notification Services Tutorial
  14. java并发编程源码_Java并发编程实战 PDF+源码
  15. Linux内核中获取纳秒时间戳的方法
  16. 基于模板方法+协调者委托对现有冗余代码的改造案例
  17. Categories(分类,类别)
  18. 小米手机连接青花瓷抓包(https)
  19. 永磁无刷电机及其驱动技术_PDF.rar
  20. 不同音频文件如何进行数据恢复?

热门文章

  1. IOS开发之sqlite封装
  2. 差分约束 4416 FFF 团卧底的后宫
  3. haskell,lisp,erlang你们更喜欢哪个?
  4. activity得到service的数据的方法
  5. 使用ilmerge实现.net程序静态链接
  6. 16招帮助企业降低IT管理成本
  7. Q学习(Q learning) 强化学习
  8. macOS 如何正确安装 Xcode 合适版本
  9. 双网卡双ip实现双线路共用
  10. ubuntu9.10下关闭和启用3D桌面(compiz)特效的命令