Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取和解析二进制数据_Java - Fatal编程技术网

Java 读取和解析二进制数据

Java 读取和解析二进制数据,java,Java,我有一个文件存储在磁盘上,它的结构是带有固定大小记录的块。 每条记录由两个整数和一个双精度(精度:###.##)组成。 我想读取内存中的特定块,查找特定记录并将其数据存储在class Rec实例中 到目前为止,我是这样读这段文字的: public void read(int blockNumber, byte buffer[]) { System.arraycopy(data, blockNumber * BLOCK_SIZE,buffer, 0,BLOCK_SIZE); //

我有一个文件存储在磁盘上,它的结构是带有固定大小记录的块。 每条记录由两个整数和一个双精度(精度:###.##)组成。 我想读取内存中的特定块,查找特定记录并将其数据存储在class Rec实例中

到目前为止,我是这样读这段文字的:

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吗?是的,对不起,我指的是处理字节的函数。