这里需要注意的是:如果get或者是put时,数据不足,或者空间不够,都会发生异常。
如果不是用putXX的方法,直接getXX,那么可能产生意想不到的问题。
7、无符号数存取
对于java来说,没有无符号数处理(除了char)。为此,书中给出一个程序,用来处理无符号数缓冲区。
其基本原理是,使用比要存取的数据类型更大的数据类型来存放这个数,同时使用与运算强制设置符号位为0,剩余的位就可以作为数据而不是符号位了。
public class Unsigned
{
public static short getUnsignedByte (ByteBuffer bb) {
return ((short)(bb.get( ) & 0xff));
}
public static void putUnsignedByte (ByteBuffer bb, int value) {
bb.put ((byte)(value & 0xff));
}
...
}
这里省略了其他部分。这样我们就可以看到带符号的
8、内存映射缓冲区
映射缓冲区是与文件存储的数据元素关联的字节缓冲区,它通过内存映射来访问。映射缓
冲区通常是直接存取内存的,只能通过 FileChannel 类创建。映射缓冲区的用法和直接缓冲
区类似,但是 MappedByteBuffer 对象具有许多文件存取独有的特征。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32465-6.html
有病的才是你
有本事联合国让中国说了算在中国办公
我估计很多还是雇佣的
而你塔魔的是挑战整个人类的秩序