在 C# 中,FileStream
的方法 Read/Write/Seek 接受integer
参数。在上一篇文章中,我看到了一个很好的解决方案来读取/写入大于分配给进程的虚拟内存的文件。
如果您想从头到尾写入数据,则此解决方案有效。但就我而言,我收到的数据块没有特定的顺序。
我有一个适用于小于 2GB 的文件的代码:
private void WriteChunk(byte[] data, int position, int chunkSize, int count, string path)
{
FileStream destination = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter writer = new BinaryWriter(destination);
writer.Seek((int) (position*chunkSize), SeekOrigin.Begin);
writer.Write(data, 0, count);
writer.Close();
}
有没有办法可以在大于 2GB 的文件中查找和写入我的块?