在C#中,FileStream
的方法Read/Write/Seek在参数中取integer
。在previous post中,我看到了一个很好的解决方案来读取/写入大于分配给进程的虚拟内存的文件。在C#中查找和写入大于2GB的文件
如果您想从头到尾写入数据,此解决方案可以正常工作。但就我而言,我收到的大量数据没有特定的顺序。
我有工作的小于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?
谢谢!我看到BinaryWriter没有超载寻找一个很长的,但FileStream。 –
MSDN文档显示BinaryWriter.Seek的偏移参数为int。在VS2010中进行双重检查,BinaryWriter.Seek将第一个参数显示为int,没有重载。那么需要多长时间? – user957902
在打开BinaryReader之前,您需要查找FileStream。 – usr