Java файловая структура в памяти? - PullRequest
6 голосов
/ 24 января 2011

Мне нужно много чего сделать с ресурсами на лету: анализ документов xsd / xml, сборка и компиляция java-классов, упаковка их в jars и wars, сохранение в БД, развертывание их как OSGi и т. Д.

Большинство библиотек / API, которые я использую, позволяют выполнять все эти промежуточные задачи в памяти, но есть некоторые «специальные» библиотеки, работающие только с java.io.File.И для меня ничего не осталось, кроме использования реальных временных файлов и каталогов, что не очень хорошо в среде Java EE.

Я считаю, что должна быть библиотека / решение для файловой структуры в памяти, имеющей узлы, расширяющие java.io.File (как я вижу это).Пожалуйста, оставьте ссылку на известные / похожие библиотеки.Любые комментарии приветствуются.

Спасибо!

Ответы [ 3 ]

7 голосов
/ 24 января 2011

Я не верю, что вы найдете то, что ищете.API java.io.File не был написан с целью предоставления абстракции файловой системы, которая может быть реализована различными способами.Хотя он предоставляет метод для некоторых операций FS (например, delete и mkdir), он не обрабатывает базовый ввод / вывод для чтения / записи.Это оставлено другим классам, таким как FileInputStream.Это означает, что с точки зрения API объект File является не более чем путем.Ничего не абстрагировано.Вы застряли.

4 голосов
/ 24 января 2011

Один из вариантов - использовать RAM диск .Ваша программа будет думать, что она использует диск с java.io.File, но она действительно использует основную память.

1 голос
/ 12 августа 2017

Существует прекрасная альтернатива: https://github.com/google/jimfs

Это поддерживает Java (7+) в обработке файловой системы памяти и очень прост в использовании.

...