【Java】getFreeSpace() 和 getUsableSpace()的区别

结论:

1、getFreeSpace的返回结果 >= getUsableSpace()的返回结果。
2、getFreeSpace是一个参考值,如果要获取准确值需要使用getUsableSpace。
3、大部分情况下两者返回值是一样的。

java.io.File.getFreeSpace()返回path name所在分区的unallocated bytes。但是这个返回值不能保证。会在这个方法调用之后,被外部的I/O操作影响。

java.io.File.getUsableSpace()返回path name所在分区的虚拟机上的available bytes。在可能的情况下,此方法检查写权限和其他操作系统限制,因此通常比getFreeSpace()更准确地估计实际可以写多少新数据。

getUsableSpace会进行更多细致的检查,比如当前JVM进程是否对该目录有写权限,以及另外一些操作系统的限制等。

你可能感兴趣的:(Java语言积累,java,开发语言)