如果我有一个要读取的给定.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,这是不一样的。我认为这可能包括与内容无关的额外文件相关数据。
第一种方法不错,但是对于大文件来说效率很低。知道我如何加快处理速度并有效地获取整数数吗?
答案 0 :(得分:0)
如果您想多次了解hoy,可以从某个 binary 文件中读取32位整数,则方法2是肯定的答案。
除非确定可以通过DataInputStream
写入文件,否则不要通过DataOutputStream
读取文件,因为那样的话,它不仅仅是一个普通的二进制文件:而是成为< em> Java对象文件,其中包含写入每个对象的大量开销数据。