Если у меня есть заданный файл .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, что не совпадает. Я думаю, что это может быть связано с дополнительными данными, относящимися к файлам, не связанными с содержанием.
Первый метод хорош, но он очень неэффективен для больших файлов. Любая идея, как я могу ускорить процесс и получить количество целых чисел эффективно?