【发布时间】:2012-12-22 12:27:18
【问题描述】:
如何使用MemoryMappedFile 读取文件字节并将其放入byte[] 数组中?
【问题讨论】:
如何使用MemoryMappedFile 读取文件字节并将其放入byte[] 数组中?
【问题讨论】:
假设您只想读取文件的一部分,这样的事情应该可以工作:
long offset = 0x10000000; // 256 megabytes
long length = 100;
using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\Test.data"))
{
using (MemoryMappedViewStream stream = CreateViewStream(offset, length))
{
byte[length] bytes;
int bytesRead = stream.Read(bytes, 0, (int)length);
}
}
如果你想读取整个文件,你真的不应该首先使用MemoryMappedFile 对象。
【讨论】:
stream.Read 读取到 bytes 的字节数可能少于 length。
MemoryMappedFile,您可能只需要使用标准的FileStream 和Seek 方法在文件中跳转。