如何使用Java计算此文件中的整数数?

时间:2018-09-08 17:37:29

标签: java io

如果我有一个要读取的给定.dat文件,如何计算32位整数的数量?我使用2种不同的方法得到2种不同的答案。

第一种方法:

int size = 0;
try (DataInputStream Input = new DataInputStream(
        new BufferedInputStream(new FileInputStream(file.getFD())))){
    while (true) {
        file.skipBytes(4);
        size += 1;
    }
}catch(Exception ex){
    System.out.println(ex);
}
System.out.println(size);

第二种方法:

File fileRead = new File(file);
ret = fileRead.length() / 4

第一种方法可能是最准确的,因为我每次读取4个字节并跳过它,以获取按顺序打包在文件中的整数的大小。但是,第二种方法只是给我直接文件大小,然后除以4,这是不一样的。我认为这可能包括与内容无关的额外文件相关数据。

第一种方法不错,但是对于大文件来说效率很低。知道我如何加快处理速度并有效地获取整数数吗?

1 个答案:

答案 0 :(得分:0)

如果您想多次了解hoy,可以从某个 binary 文件中读取32位整数,则方法2是肯定的答案。

除非确定可以通过DataInputStream写入文件,否则不要通过DataOutputStream读取文件,因为那样的话,它不仅仅是一个普通的二进制文件:而是成为< em> Java对象文件,其中包含写入每个对象的大量开销数据