【发布时间】:2014-06-01 22:01:51
【问题描述】:
我正在尝试检查最初来自文件但超出我的代码范围的输入流的大小,并将其与磁盘上的实际文件进行比较,尝试检查两者是否相同。
当我将输入流转换为字节数组并获取长度时,结果正好比磁盘上的同一个文件少 4096。我想有一些标题占用了额外的 4096 字节。
有人能证实这个理论,并告诉我这是否总是如此吗?
这个问题主要是关于4096字节的差异以及它来自哪里,而不是关于如何比较文件。我还有其他检查,例如 md5 和其他检查,可以在该领域提供帮助。
谢谢
【问题讨论】:
-
大小应该没有区别。但除非你向我们展示代码,否则我们只能猜测它发生了什么。顺便说一句-您认为某些标题会增加文件大小的理论是不正确的。
-
你如何测量磁盘上的文件大小? FS 在 X 字节块上分配内存 - 比如说 16k。如果你的文件是 1 字节,它仍然会占用 16k 的磁盘空间。那么您是在测量实际文件大小还是它在磁盘上占用的大小?
-
实际上,我使用的是 Mongo Grid FS,文件大小就是 Grid FS 所说的。它是数据的确切大小,而不是磁盘上的块存储。如果是块存储,我会通过查看数字注意到它。我现在拥有的文件大小以 ...33 结尾,所以不是 1024 的倍数。
标签: java inputstream filesize