码迷,mamicode.com
首页 > 移动开发 > 详细

MappedByteBuffer 存储long

时间:2018-02-09 15:25:41      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:读取   body   sse   equals   channel   ann   and   temporary   mac   

val folder = TemporaryFolder()
folder.create()
val file = folder.newFile("test.dat")
// 创建一个20字节容量的MappedByteBuffer
val buffer = RandomAccessFile(file,"rw")
        .channel.map(FileChannel.MapMode.READ_WRITE,0,20)

val lv = 0x1122334455667788L
val vl = 0x1020304050607080L

buffer.putLong(lv)  // 存储第一个long
buffer.putLong(vl)  // 存储第二个long
buffer.force()      // 将数据存储到磁盘
Assert.assertEquals(0x11.toByte(),buffer.get(0))  // 读取第一个字节
Assert.assertEquals(0x3344.toShort(),buffer.getShort(2))  // 读取一个short

Assert.assertEquals(0x10.toByte(),buffer.get(8))    // 读取第二个long的第一个字节
Assert.assertEquals(0x3040.toShort(),buffer.getShort(10)) // 读取第二个long的一个short

从上面的测试代码可以看出MappedByteBuffer存储long时,从long的最高位字节开始存储的,这和我们的书写数字的很类似。所以在操作MappedByteBuffer时要注意这一点。

MappedByteBuffer 存储long

标签:读取   body   sse   equals   channel   ann   and   temporary   mac   

原文地址:https://www.cnblogs.com/arax/p/8434655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!