我希望获得 Java 中稀疏文件的准确测量(即磁盘上的实际大小,而不是包含所有 0 的正常大小)。
在 Windows 上的 C++ 中,人们会使用GetCompressedFileSize。我还没有遇到过如何在 Java 中做到这一点?
如果没有直接的等效项,我将如何测量稀疏文件中的数据,而不是包含所有零的大小?
为了澄清起见,我希望能够在 Linux 操作系统和 Windows 上运行稀疏文件测量,但是我不介意编写两个单独的应用程序!
如果你想要一个纯Java的解决方案你可以尝试jnr-posix。这是一个示例实现
import jnr.posix.*;
final POSIX p = POSIXFactory.getPOSIX();
final int S_BLKSIZE = 512; // from sys/stat.h
final FileStat stat = p.stat("/path/to/file");
final long bytes = stat.blocks() * S_BLKSIZE;
然而目前该功能不适用于 Windows。在此问题解决之前,您必须使用特定于平台的代码,如下所示
欲了解更多信息,您可以阅读以下问题
- 如何查询“磁盘大小”文件信息?
- 获取磁盘上文件的大小
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)