成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java NIO 緩沖技術詳解

移動開發(fā)
緩沖區(qū)(buffer)是從即將寫入通道(channel)或剛剛從通道中讀出的一段數據。它是一個持有數據,并扮演NIO通道端點的對象。緩沖區(qū)為數據訪問和讀寫過程提供正式機制。

緩沖區(qū)(buffer)是從即將寫入通道(channel)或剛剛從通道中讀出的一段數據。它是一個持有數據,并扮演NIO通道端點的對象。緩沖區(qū)為數據訪問和讀寫過程提供正式機制。

它是NIO和老版Java I/O的一個主要區(qū)別。之前數據是直接從流(stream)中讀寫的,現在數據可以從緩沖區(qū)讀寫。在NIO中,通道是流的同義詞。想要了解更多關于NIO通道的信息, 請閱讀上一篇教程Java NIO通道

[[150477]]

NIO緩沖區(qū)特征

  • Java NIO的基本組成模塊就是緩沖區(qū)。
  • 緩沖區(qū)提供一個固定大小的容器來讀取數據。
  • 每個緩沖區(qū)都是可讀的,但只有特定緩沖區(qū)才是可寫的。
  • 緩沖區(qū)是通道的端點。
  • 只讀緩沖區(qū)的內容是不可變的,但是其mark、position和limit都是可變的。
  • 默認情況下,緩沖區(qū)都不是線程安全的。

緩沖區(qū)類型

每種原始類型都有一個對應的緩沖區(qū)類型。所有的緩沖區(qū)類都實現了Buffer接口。最常用的緩沖區(qū)類型是ByteBuffer。如下是Java NIO包中提供的緩沖區(qū)類型。

  • ByteBuffer
  • CharBuffer
  • ShortBuffer
  • IntBuffer
  • LongBuffer
  • FloatBuffer
  • DoubleBuffer
  • MappedByteBuffer

緩沖區(qū)容量

緩沖區(qū)有固定大小,我們只能存儲少于“固定大小”的數據,固定大小的值就叫做緩沖區(qū)的容量。緩沖區(qū)一旦填滿則必須清空才能再次寫入。容量一旦設置好,在緩存區(qū)的生命周期內都不會改變。

緩沖區(qū)界限

在寫入模式,緩沖區(qū)的界限就等于容量。在讀模式中,界限指向緩沖區(qū)***一個數據位的下一位。當緩沖區(qū)被寫入時,界限一直遞增。緩沖區(qū)的界限永遠大于等于零且小于等于容量,0 <= 界限 <= 容量。

緩沖區(qū)位置

位置指向緩沖區(qū)當前地址。當緩沖區(qū)創(chuàng)建時,位置設置為零。讀寫過程中,位置會遞增到下一個索引位置。位置永遠在零和界限之間。

緩沖區(qū)標記

標記類似于給緩沖區(qū)設置書簽。調用 mark() 時當前位置就被記錄下來了,調用 reset() 時標記的位置就被恢復。

緩沖區(qū)flip、clear和rewind

緩沖區(qū)flip()

flip() 方法用來為緩沖區(qū)做準備,進行 get 操作或者準備新的寫入序列。flip() 將界限設置到當前位置,然后將位置置為0。

緩沖區(qū)clear()

clear() 方法用來為緩沖區(qū)做準備,進行 put 操作或者準備新的讀序列。clear() 將界限設置到容量的位置,并將位置置為0。

緩沖區(qū)rewind()

rewind() 方法用來再次讀取已經獲取過的數據。rewind()將緩沖區(qū)位置置0。

如何讀NIO緩沖區(qū)

  1. 首先創(chuàng)建緩沖區(qū),分配容量。Buffer有一個 allocate(size) 方法,可以返回一個 Buffer 對象。ByteBuffer byteBuffer = ByteBuffer.allocate(512);
  2. 進行 flip 操作,準備進行讀操作。byteBuffer.flip();
  3. 下面可以讀入數據。int numberOfBytes = fileChannel.read(byteBuffer);
  4. 接下來可以從緩沖區(qū)讀取數據。char c = (char)byteBuffer.get();

如何寫NIO緩沖區(qū)

  1. 創(chuàng)建緩沖區(qū),分配容量。ByteBuffer byteBuffer = ByteBuffer.allocate(512); //容量設為512
  2. 寫入數據。byteBuffer.put((byte) 0xff);

以上就是讀寫緩沖區(qū)的兩個例子。緩沖區(qū)有很多種類型以及很多種讀寫方法。你可以根據使用要求進行選擇。

原文鏈接: javapapers 翻譯: ImportNew.com lemeilleur
譯文鏈接: http://www.importnew.com/16721.html

責任編輯:倪明 來源: ImportNew
相關推薦

2011-12-07 14:57:44

JavaNIO

2011-12-14 16:30:42

javanio

2023-07-11 08:32:06

緩沖區(qū)Java

2011-03-31 10:41:49

BIONIOIO

2011-07-21 17:05:31

iPhone 屏幕 緩沖

2011-08-30 12:51:19

MySQL線程緩沖池

2011-12-15 09:40:06

Javanio

2011-12-15 09:55:47

javanio

2011-12-15 11:19:08

JavaNIO

2020-09-21 08:43:55

java

2011-12-15 10:10:33

Javanio

2011-12-15 10:43:20

JavaNIO

2022-02-22 08:00:48

JavaNIOBuffer

2011-12-07 14:41:51

JavaNIO

2011-12-07 16:12:29

JavaNIO

2010-06-29 14:51:26

UML建模技術

2020-03-11 10:09:57

JAVA詳解classpath

2010-09-01 17:10:02

無線局域網WLAN

2009-01-06 12:56:25

服務器備份磁軌

2024-04-26 00:02:00

云技術公有云私有云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲人成人一区二区在线观看 | 欧美中文字幕一区二区三区亚洲 | av网站在线免费观看 | 最新日韩精品 | 日本久久www成人免 成人久久久久 | 精品久久99 | 四虎成人av | 91精品国产乱码久久久久久久 | 亚洲视频一区在线观看 | 99亚洲精品视频 | 激情毛片 | 成人午夜激情 | 久久最新| 97精品国产97久久久久久免费 | 黄色精品 | 色资源在线| 日本aa毛片a级毛片免费观看 | av超碰| 欧美人妖网站 | 久久久成人网 | 高清一区二区三区 | 亚洲高清在线观看 | 国产成人99久久亚洲综合精品 | 成年无码av片在线 | 欧美在线 | 中文字幕一区在线 | 欧美亚洲视频在线观看 | 午夜精品久久久 | av在线天堂网 | 国产欧美日韩精品一区 | 精品91久久 | 狠狠色综合欧美激情 | 五月综合激情网 | 亚洲精品成人在线 | 精品视频一区二区三区 | 美国黄色毛片 | 亚洲a级| 亚洲精品无 | 一级二级三级在线观看 | 国产在线精品一区二区 | 亚洲视频在线一区 |