使用java.nio在内存中写入文件?

Foo*_*yto 6 java java-native-interface shared-memory memory-mapped-files

使用nio,可以将现有文件映射到内存中.但是有可能只在内存中创建它而没有硬盘上的文件吗?

我想模仿CreateFileMapping窗口函数,它允许你在内存中写入.

Java中是否有等效的系统?

目标是在内存中写入以便另一个程序(c)读取它.

Jav*_*a42 3

看看以下内容。将创建一个文件,但这可能与您想要的最接近。

MappedByteBuffer
MappedByteBuffer.load()
FileChannel
FileChannel.map()
Run Code Online (Sandbox Code Playgroud)

这是一个尝试帮助您入门的片段。

    filePipe = new File(tempDirectory, namedPipe.getName() + ".pipe");
    try {
        int pipeSize = 4096;
        randomAccessFile = new RandomAccessFile(filePipe, "rw");
        fileChannel = randomAccessFile.getChannel();
        mappedByteBuffer = fileChannel.map(FileChannel.MapMode.READ_WRITE, 0, pipeSize);
        mappedByteBuffer.load();
    } catch (Exception e) {
    ...
Run Code Online (Sandbox Code Playgroud)