想象一下,我正在将文件直接写入1025字节的位置,将前1024个字节保留为空。
我想再次打开文件,并从第一个字节位置搜索,检查第一个字节是否为空(没有真实数据)?
答案 0 :(得分:4)
您如何预测将1024字节全部写为零的文件与“没有实际数据”的文件区别开来?
如果您要做的只是检查前1024个字节是否为零,只需读取数据并以正常方式进行比较。
答案 1 :(得分:3)
您调用的空字节与Java中的空引用不同。空字节通常是所有位清零的字节,即0。
所以你要做的就是读取一个字节并将其与0进行比较。注意read
中的InputStream
方法返回int
,-1表示文件结束。
答案 2 :(得分:0)
java-byte使用可以由存储在其中的8位内存表示的所有值,因此没有剩余位置用于默认的“无效”字节值,您必须自己选择一个(例如 - 1,如果你只使用正值)。如果需要所有字节值,可以使用较大的数据类型(如short)来表示无效值。
作为替代方案,您可以自己跟踪文件中的空闲/未使用区域,这样您就必须在文件中存储有关空闲和已用地址的信息,但您仍然可以读取写入字节。