我正在使用BinaryWriter
将数据写入gzip压缩文件流。我想在标题中包含偏移值,以便在读取时,我可以只搜索和读取特定部分而不是整个文件。
但是,我没有找到关于如何设置这些值的明确文档。
以下是我目前作家的一个例子:
using (var writer = new BinaryWriter(stream)) {
foreach (IPersistedObject obj in objectsToWrite) {
writer.Write(target.Key);
writer.Write(target.SchemaVersion);
// writer a bunch of object-specific data
}
}
但是要在文件头中写一个偏移量,我需要:
我还假设压缩会破坏所有这些。这是它的工作方式还是我错过了其他一些技巧?
我也不清楚如何正确检查数据的二进制长度。基于现有的文档,我需要先使用Convert.ToString,然后检查它的长度。