Java File.length中的文件大小与Windows资源管理器不同

Java File.length中的文件大小与Windows资源管理器不同,java,windows,file,Java,Windows,File,我正在使用文件(outputFilePath).length()获取文件的大小。但是Windows资源管理器告诉我它稍微大一点,即144835字节比151412字节。这令人惊讶还是意料之中?区别在于windows可以处理通常为4Kb(4096字节)的块中的磁盘。这是操作系统可以单独处理的最小部分磁盘空间。因此,当一个文件没有填满整个块时,磁盘空间会被浪费,即使实际文件大小较小,它仍然会占用分配块的磁盘空间—在您的情况下,它会占用37个4Kb块。您可以更改块大小,但必须格式化磁盘才能更改。Java

我正在使用
文件(outputFilePath).length()
获取文件的大小。但是Windows资源管理器告诉我它稍微大一点,即144835字节比151412字节。这令人惊讶还是意料之中?

区别在于windows可以处理通常为4Kb(4096字节)的块中的磁盘。这是操作系统可以单独处理的最小部分磁盘空间。因此,当一个文件没有填满整个块时,磁盘空间会被浪费,即使实际文件大小较小,它仍然会占用分配块的磁盘空间—在您的情况下,它会占用37个4Kb块。您可以更改块大小,但必须格式化磁盘才能更改。Java
File.length()
返回以字节为单位的实际大小。

大小或磁盘上的大小?Sotirios,size。磁盘上的大小是151552字节。所以操作系统在磁盘上分配151552字节来存储文件,但实际上只需要144835字节。