Как узнать количество байтов двоичного файла? - PullRequest
0 голосов
/ 05 мая 2018

Как посчитать количество байтов этого двоичного файла (t.dat) без запуска этого кода (как теоретический вопрос)? Предполагая, что вы запускаете следующую программу в Windows, используя кодировку ASCII по умолчанию.

public class Bin {
     public static void main(String[] args){
     DataOutputStream output = new DataOutputStream(
            new FileOutputStream("t.dat"));
     output.writeInt(12345);
     output.writeUTF("5678");
     output.close();
     }
}

1 Ответ

0 голосов
/ 05 мая 2018

Вместо того, чтобы пытаться вычислять байты, выводимые каждой операцией записи, вы можете просто проверить длину файла после его закрытия, используя new File("t.dat").length().

Если вы хотите выяснить это без прямой проверки длины, int занимает 4 байта, а что-то, записанное с writeUTF, занимает 2 байта для представления закодированной длины строки плюс пробел строки сам по себе, что в данном случае составляет еще 4 байта - в UTF-8 каждому символу в «5678» требуется 1 байт.

Так что это 4 + 2 + 4 или 10 байтов.

...