MappedByteBuffer 存储long

【MappedByteBuffer 存储long】贵有恒,何必三更起、五更眠、最无益,只怕一日曝、十日寒。这篇文章主要讲述MappedByteBuffer 存储long相关的知识,希望能为你提供帮助。

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 = 0x1020304050607080Lbuffer.putLong(lv)// 存储第一个long buffer.putLong(vl)// 存储第二个long buffer.force()// 将数据存储到磁盘 Assert.assertEquals(0x11.toByte(),buffer.get(0))// 读取第一个字节 Assert.assertEquals(0x3344.toShort(),buffer.getShort(2))// 读取一个shortAssert.assertEquals(0x10.toByte(),buffer.get(8))// 读取第二个long的第一个字节 Assert.assertEquals(0x3040.toShort(),buffer.getShort(10)) // 读取第二个long的一个short

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

    推荐阅读