硬逻辑-反转格式

fd3cxomn  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(340)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

上个月关门了。
改进这个问题
我有一个从文件中读取的代码:

dummy = fd.readLong();
for(i = 0; i < chunks; i++) {
    dummy2=fd.readLong();
    chunksizes[i] = dummy2- dummy;
    dummy = dummy2;
}

我现在有一个块大小的列表,我想用上面的格式写它们。我有一个名为actualsizes的数组,它是我想写的大小,我有块的数量。有没有能做到这一点的伪代码?我的头快疯了,但看起来很简单

4ioopgfo

4ioopgfo1#

文件似乎有一个偏移列表,您可以将它们作为增量(块大小)加载到数组中:

0    100   250   420   580    Offsets from file
└──┬──┴──┬──┴──┬──┴──┬──┘
  100   150   170   160       Deltas, aka chunk sizes

然后你说:
我现在有一个块大小的列表,我想用上面的格式写它们。
唯一的“上面的格式”是偏移列表,因此可以从delta(chunk/actual)大小列表开始创建偏移列表 0 写一个连续的总和:

long offset = 0;
fd.writeLong(offset);
for (long size : actualSizes) {
    offset += size;
    fd.writeLong(offset);
}
120   140   130   150       actual sizes
┌──┴──┬──┴──┬──┴──┬──┴──┐
0    120   260   390   540    offsets in file (running total)

相关问题