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

 2023-01-20    345  

问题描述

使用NIO,可以在内存中映射现有文件.但是,是否可以仅在硬盘上没有文件的情况下在内存中创建它?

我想模仿CreateFileMapping Windows函数,这些窗口允许您写入内存.

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

Java中是否有等效系统?

目标是在记忆中写入以使另一个程序(c)读取它.

推荐答案

请查看以下内容.创建一个文件,但这可能与您要获得的近距离.

MappedByteBuffer
MappedByteBuffer.load()
FileChannel
FileChannel.map()

这是一个试图让您入门的片段.

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) {
    ...

其他推荐答案

Java中的大多数库都与输入和输出流到 br>
示例:图像阅读, xml ,音频, zip

在可能的情况下,处理I/O时,请使用流.

这可能不是您想要的,如果您需要随机访问数据.

使用内存映射文件时,您会得到 mappedbytebuffer 来自使用 filechannel.map(),如果您不需要文件,只需使用 bytebuffer ,它完全存在于内存中.使用 bytebuffer创建其中之一.分配()或 bytebuffer.allocatedirect().

以上所述是小编给大家介绍的用java在内存中写入文件。nio?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25966.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。