java - 硬逻辑 - 反转格式
问题描述
我有这个从文件中读取的代码:
dummy = fd.readLong();
for(i = 0; i < chunks; i++) {
dummy2=fd.readLong();
chunksizes[i] = dummy2- dummy;
dummy = dummy2;
}
我现在有一个块大小列表,我想以上面的格式编写它们。我有一个名为 actualSizes 的数组,它是我要写入的大小,我有块的数量。任何可以做到这一点的伪代码?我的头快疯了,但它看起来很简单
解决方案
似乎该文件有一个偏移量列表,并且您将它们作为增量(块大小)加载到数组中:
0 100 250 420 580 Offsets from file
└──┬──┴──┬──┴──┬──┴──┬──┘
100 150 170 160 Deltas, aka chunk sizes
然后你说:
我现在有一个块大小列表,我想以上面的格式编写它们。
唯一的“上面的格式”是偏移量列表,因此您可以从增量(块/实际)大小列表中创建偏移量列表,方法是从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)
推荐阅读
- lotus-notes - 您如何获取作为 %INCLUDE 一部分的 lotusscript 声明中引用的文件
- json - 尝试上传到 heroku 我的 json 文件中出现解析错误
- r - 将数据框的列索引转换为 yearmon
- qt-creator - ClangFormat 的 80 个字符限制适用于以 @ 开头但不是 \ 的注释
- laravel - 使用laravel护照登录后尝试获取非对象的属性“名称”
- r - ggplot中的回归线
- javascript - Jest React 在组件中模拟 div/prop
- c# - html 一个标签来触发一个动作
- sql - 子查询返回所有结果
- python - BeautifulSoup 获取没有特定标签的文本