Как создать каталог в памяти? псевдо файловая система / виртуальный каталог - PullRequest
4 голосов
/ 01 апреля 2011

В моем случае я хотел бы иметь каталог в памяти для хранения некоторых файлов в течение очень короткого времени. На самом деле я компилирую исходный код в .class файлы во время выполнения, загружаю классы и выполняю их. Чистым способом было бы создать виртуальный каталог и позволить компилятору создавать там файлы .class. Конечно, я мог бы использовать временный каталог, но я должен очистить его перед компиляцией, я не знаю, использую ли я его только и т. Д.

Итак, как и как можно создать виртуальный, в смысле в памяти, каталог на Java?

Ответы [ 4 ]

8 голосов
/ 01 апреля 2011

В Java 6 на самом деле невозможно делать подобные вещи в приложении Java.Для обеспечения псевдофайловой системы вам необходимо полагаться на платформу ОС.

В Java 7 API-интерфейсы NIO были расширены, чтобы обеспечить API, позволяющий определять новые файловые системы;см. FileSystemProvider.

Apache Commons VFS - это еще один вариант, но он имеет несколько характеристик, которые могут вызвать проблемы для существующего кода и (сторонних производителей)библиотеки:

  • Файлы и каталоги в VFS именуются с помощью URL-адресов, а не File объектов.Поэтому код, использующий File для манипулирования файлами, работать не будет.

  • FileInputStream, FileOutputStream, FileReader и FileWriter не будут работать с VFS в течение длительного временита же причина.

2 голосов
/ 01 апреля 2011

Похоже, вы можете использовать виртуальный диск.Есть много приложений, которые будут делать это, то, что вы используете, будет зависеть от целевой ОС.Я не знаю ни одного нативного Java API, поддерживающего это.

1 голос
/ 01 апреля 2011

Я не уверен, полезно это или нет, но проверьте Apache Commons VFS .

Кажется, что вам нужна файловая система памяти.

0 голосов
/ 12 мая 2013
...