我正在处理大量文件,我需要知道硬盘或闪存中的每个文件的物理偏移量(地址)
谢谢亲爱的
文件没有一个物理偏移量。相反,它们由块组成(除非您的文件很小,在这种情况下只有一个块) 如果您是 root,则可以在 Linux 上读取原始文件系统,例如,/dev/sd1c
但您如何做到这一点取决于您拥有的文件系统。
我建议您阅读您正在使用的文件系统的维基百科页面。
但是,您很可能不知道实际位置,而虚拟位置就是您所需要的。为此,您使用 FileInputStream/FileOutputStream/RandomAccessFile 打开文件并内存映射文件。这会将文件映射到连续的虚拟内存中,您可以访问文件的内容,就像它在内存中一样(如果您访问整个文件,它很有可能会被缓存在内存中)
Java 无法做到这一点。问题太低级了。您需要使用系统编程语言。