java - C# 相当于 Java 内存映射方法

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

谁能告诉我如何正确翻译上面的这段话?

最佳答案

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

一个MemoryMappedViewStream是内存上的一层薄薄的单板。

关于java - C# 相当于 Java 内存映射方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716027/

相关文章:

c++ - 检测到堆损坏 : after Normal block (#126)

java - 安卓工作室 : "Gradle sync failed: Could not run JVM from the selected JDK."

java - Java 最好的模拟框架是什么?

java - DNA 到 RNA 的转换 Java Swing : Why aren't my JButtons working?

c# - SubSonic 3.0 简单存储库向对象添加 DateTime 属性

memory - 每个 webapp 内存设置的 Tomcat

java - 如何在 Eclipse 中引用不同的 Java 项目

c# - 我怎样才能从 C# 中的字符串中获取位?

c# struct/class initilaze 一个 Arraylist

Linux 下 C++ 编译错误