c#等效于Java内存映射方法

本文关键字:内存 映射 方法 Java | 更新日期: 2023-09-27 17:54:29

在将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代码那样正确地使用它(MappedByteBuffer用于获取一个大的二进制文件,大约600-700MB)。

谁能告诉我如何正确翻译这篇文章?

c#等效于Java内存映射方法

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

MemoryMappedViewStream是内存上的一个薄层