Является ли File.length платформой и файловой системой независимой - PullRequest
2 голосов
/ 09 ноября 2011

Изображение Я ловлю поток сети и подсчитываю, сколько байтов прошло через мои руки, я записываю этот поток в файл.Является ли количество подсчитанных байтов гарантированным равным результату file.length () (после очистки и т. Д.)?

Если вы посмотрите на проводник Windows, он даст вам несколько других чисел (размер на диске)., реальный размер, ...).

Является ли файл java file.length свободным от каких-либо расширений операционной системы и файловой системы для файла?

Javadoc говорит только: The length, in bytes, of the file denoted by this abstract pathname, or 0L if the file does not exist

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Размер на диске - это количество байтов, которое файл занимает в файловой системе. Это не размер файла. file.length() возвращает, как вы указали в javadoc, сколько байтов вы можете прочитать из файла. Так что да, это не зависит от платформы.

Является ли количество подсчитанных байтов гарантированным равным результату file.length ()

если вы читаете байты и пишете байты без преобразования в строки и т. Д. Тогда да.

0 голосов
/ 09 ноября 2011
 number of counted bytes guranteed to be equal to the file.length()

Я так не думаю. В основном нет. Это будет зависеть от кодировки символов. Каждый символ, который вы пишете в файле, может занимать более одного байта.

...