首页 > 移动平台 > 详细

MappedByteBuffer 存储long

时间:2018-02-09 13:14:36      阅读:202      评论:0      收藏:0      [点我收藏+]
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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!