C#等效的Java内存映射方法

时间:2015-06-08 18:01:29

标签: java c# memory memory-mapped-files

在将Java项目翻译成C#时,我遇到了以下问题:

RandomAccessFile raf = new RandomAccessFile(fileName, "r");
FileChannel channel = raf.getChannel();
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, length);

我不熟悉内存映射概念,我在C#中找到了一个MemoryMappedFile类,但不知道如何正确使用它,就像上面的Java代码一样({{ 1}}用于获取大型二进制文件,大约600-700MB)。

有谁能告诉我如何正确翻译上面的内容?

1 个答案:

答案 0 :(得分:1)

MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(fileName, FileMode.Read);
using (MemoryMappedViewStream vs = mmf.CreateViewStream()) {
    // perform stream operations
}

MemoryMappedViewStream是内存上的薄贴面。