硬逻辑-反转格式

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

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

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

  1. dummy = fd.readLong();
  2. for(i = 0; i < chunks; i++) {
  3. dummy2=fd.readLong();
  4. chunksizes[i] = dummy2- dummy;
  5. dummy = dummy2;
  6. }

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

4ioopgfo

4ioopgfo1#

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

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

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

  1. long offset = 0;
  2. fd.writeLong(offset);
  3. for (long size : actualSizes) {
  4. offset += size;
  5. fd.writeLong(offset);
  6. }
  1. 120 140 130 150 actual sizes
  2. ┌──┴──┬──┴──┬──┴──┬──┴──┐
  3. 0 120 260 390 540 offsets in file (running total)
展开查看全部

相关问题