Используйте Apache Commons VFS RAM файл, чтобы избежать использования файловой системы с API, требующим файл - PullRequest
1 голос
/ 27 сентября 2019

Комментарий к этому сообщению крайне одобрен:

как создать новый файл java.io.File в памяти?

, где Сорин Постельнику упоминает об использовании ApacheРаспространяет файл VFS RAM как способ передачи файла в памяти для API, который требует java.io.File (я перефразирую ... надеюсь, я не упустил момент).

Основываясь на прочтении связанных постов, я пришел с этим примером кода:

    @Test
    public void working () throws IOException {

        DefaultFileSystemManager manager = new DefaultFileSystemManager();
        manager.addProvider("ram", new RamFileProvider());
        manager.init();
        final String rootPath = "ram://virtual";
        manager.createVirtualFileSystem(rootPath);

        String hello = "Hello, World!";
        FileObject testFile = manager.resolveFile(rootPath + "/test.txt");
        testFile.createFile();

        OutputStream os = testFile.getContent().getOutputStream();

        os.write(hello.getBytes());
        //FileContent test = testFile.getContent();

        testFile.close();

        manager.close();

    }

Итак, я думаю, что у меня есть файл в памяти с именем ram: //virtual/test.txt с содержимым "Hello, World! "

Мой вопрос: как я могу использовать этот файл с API, для которого требуется файл java.io.File?

...