java - 启动在 RAM 内存中创建的文件

标签 java file-io ram fileinputstream

我被要求启动一个 Excel 文件,该文件是在运行时在 RAM 内存内创建的。

例如,使用:

Desktop.getDesktop().open(new File("c:\....\fileName.xlsx"));

我可以“启动”打开文件“c:....\fileName.xlsx”的 Excel 程序。

由于我的文件是在 RAM 内存中以这种方式创建的:

 ...

     FileSystemManager fsm = VFS.getManager();
     FileObject RAM = fsm.resolveFile("ram://ramFileName.xlsx");
     OutputStream os = RAM.getContent().getOutputStream();
     FileInputStream sorgente = new FileInputStream("C:\\originalFile.xlsx");   
     int singloByte;

     while ((singloByte = sorgente.read()) != -1) {
        os.write(singloByte);
     }
     sorgente.close();
     os.close();
     ...

有没有办法打开仅在RAM内存中创建且不在文件系统中创建的文件?

谢谢

最佳答案

Excel 文件无法“启动”。 Desktop.open() 的作用是查找文件的默认处理程序(在本例中可能是 Excel),并以给定文件作为参数启动该处理程序。

由于 Excel 无法打开“内存文件”(AFAIK),因此您别无选择,只能将其写入临时文件来打开它。

关于java - 启动在 RAM 内存中创建的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889501/

相关文章:

java - 随机移动对象的重绘方法

java - 机器人检测选定区域的变化

java - FileNotFoundException,文件存在 Java

java - 我的代码在某个时刻失败了。 Java文件IO

c++ - 在 gcc 中编译

java - 如何让 Java 应用程序以更多内存运行?

qt - qml 中 GUI 屏幕转换的工作原理

java - Tomcat 使用 Spring MVC 返回 404 页面;未到达 Controller

java - 卡尺错误 : CICompilerCount of 1 is invalid; must be at least 2

java - 使用php获取内存使用情况