Java 读取和解析二进制数据
我有一个文件存储在磁盘上,它的结构是带有固定大小记录的块。 每条记录由两个整数和一个双精度(精度:###.##)组成。 我想读取内存中的特定块,查找特定记录并将其数据存储在class Rec实例中 到目前为止,我是这样读这段文字的:Java 读取和解析二进制数据,java,Java,我有一个文件存储在磁盘上,它的结构是带有固定大小记录的块。 每条记录由两个整数和一个双精度(精度:###.##)组成。 我想读取内存中的特定块,查找特定记录并将其数据存储在class Rec实例中 到目前为止,我是这样读这段文字的: public void read(int blockNumber, byte buffer[]) { System.arraycopy(data, blockNumber * BLOCK_SIZE,buffer, 0,BLOCK_SIZE); //
public void read(int blockNumber, byte buffer[]) {
System.arraycopy(data, blockNumber * BLOCK_SIZE,buffer, 0,BLOCK_SIZE);
// block is stored in buffer
}
虽然我在C语言中使用过字节处理,但在java中我非常困惑。
例如,如果我想检索第三条记录,我知道它会启动
在缓冲区[2*记录大小]。但是,如何检索第一个int(大小:Integer.size)?
也许没有问题,但我完全被卡住了 您从文件中读取数据的方法是什么,将其完全读取到内存中?如果要这样做,为什么不在读取时将记录转换为对象呢?我想读取内存中的部分文件,进行一些更改并将其写回。C等价物是一系列memread memcpy memwrite。您提出的方法,如何实现?什么是memread和memwrite?你是说fread吗?是的,对不起,我指的是处理字节的函数。