如何比较空字节?

时间:2011-03-25 10:42:54

标签: java null

想象一下,我正在将文件直接写入1025字节的位置,将前1024个字节保留为空。

我想再次打开文件,并从第一个字节位置搜索,检查第一个字节是否为空(没有真实数据)?

3 个答案:

答案 0 :(得分:4)

您如何预测将1024字节全部写为零的文件与“没有实际数据”的文件区别开来?

如果您要做的只是检查前1024个字节是否为零,只需读取数据并以正常方式进行比较。

答案 1 :(得分:3)

您调用的空字节与Java中的空引用不同。空字节通常是所有位清零的字节,即0。

所以你要做的就是读取一个字节并将其与0进行比较。注意read中的InputStream方法返回int,-1表示文件结束。

答案 2 :(得分:0)

java-byte使用可以由存储在其中的8位内存表示的所有值,因此没有剩余位置用于默认的“无效”字节值,您必须自己选择一个(例如 - 1,如果你只使用正值)。如果需要所有字节值,可以使用较大的数据类型(如short)来表示无效值。

作为替代方案,您可以自己跟踪文件中的空闲/未使用区域,这样您就必须在文件中存储有关空闲和已用地址的信息,但您仍然可以读取写入字节。