void readStatus() throws IOException, ChecksumFailedException, StorageFormatException {
byte[] data = new byte[statusLength-parent.checker.checksumLength()];
parent.preadChecksummed(parent.crossSegmentStatusOffset(segNo), data, 0, data.length);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data));
if(dis.readInt() != segNo) throw new StorageFormatException("Bad segment number");
encoded = dis.readBoolean();
}
int[] getSegmentNumbers() {
int[] ret = new int[totalBlocks];
for(int i=0;i<totalBlocks;i++)