如果文件没有完全在最后一个字节结束,会发生什么情况?



例如,如果文件为100位,则将其存储为13个字节。这意味着最后一个字节的前4位是文件,而最后4个不是文件(无用的数据(。

那么,当使用fileInputstream.read((函数读取文件时,这是如何阻止的,或其他编程语言中的类似函数?

您会注意到,如果您使用汇编,则无法实际阅读特定位。最小的可寻址记忆位是一个字节,内存地址是指内存中的特定字节。如果您使用特定位,为了访问它,则必须使用诸如| & ^之类的位函数,因此在这种情况下,如果您将100位存储在二进制中,则实际上至少存储13个字节,只需几个位即可默认为0,因此结果相同。

当前文件系统主要存储是一个不可或缺的字节数字的文件,因此不会出现问题。您不能编写完全长100位的文件。原因很简单:文件元数据将长度保存在字节中,而不是位。

的长度。

这是文件系统设计人员的有意识的设计选择。他们大概是从考虑到任意数量长的文件的情况下的考虑的方式选择的。

很少。

那些确实需要文件以包含非综合数字字节的情况(并且需要(自己安排。也许100位案例可以插入一个标题,实际上,实际上只有以下13个字节的前100位具有有用的数据。当然,在应用程序或某些处理此类文件数据的库中,这当然需要特殊处理。


在我看来,由于布尔值等的大小,对位长度的文件不可能。当然,磁盘存储粒度不是问题:我们可以在只能处理256个字节单元的设备上存储一个" 100字节"文件 - 文件系统要注意,文件大小为100,而不是256,即使将256个字节分配给文件。如果有用的话,它同样可以很好地跟踪大小为100位。而且,当然,我们需要i/o syscalls,以零位表示传输长度。但这并不难。内存缓冲区需要稍大一些,因为语言和操作系统都不以任意的位长度分配RAM,但这并不是与文件大小紧密相关的。

最新更新