Расширенные руководства по вводу / выводу файлов Java?Подсказки?Совет? - PullRequest
2 голосов
/ 06 июня 2011

Я сейчас работаю над проектом, который будет использовать Java File I / O, который выходит за рамки простой документации «записать эту строку в файл» и учебных пособий, которые я нахожу в сети.Этот проект, по сути, обеспечит механизм баз данных, аналогичный популярным базам данных «NoSQL», которые в наши дни получают все большую популярность.Однако я не могу найти тонны документации, которая предоставляет подробную информацию о том, какие API использовать, как их использовать и т. Д. Я также искал любые общепринятые шаблоны проектирования для ввода-вывода Java File, но безлюбая удача.

Если бы мне пришлось перечислить пару требований, я бы сказал:

  • Псевдо-транзакционная поддержка (не сложное требование, так как оно может быть реализовано выше).в стеке API)
  • Возможность записи данных произвольной длины в структуру, которая может быть прочитана позже
  • Индексирование
  • Возможность удаления объекта из "база данных "эффективно
  • Быстрый поиск
  • Возможен многопоточный доступ (несколько потоков чтения, одна запись, скорее всего)

Может кто-нибудь указать мне на какие-нибудь учебники,документация, шаблоны проектирования и т. д. что может быть полезным?Существуют ли какие-либо фреймворки с открытым исходным кодом, которые вращаются вокруг Java File I / O?Я знаю много фреймворков, которые предоставляют оболочки вокруг NIO для целей сетевого ввода-вывода, но ничего не связаны с файлами.

Спасибо за любую помощь, которую вы можете предоставить!

1 Ответ

4 голосов
/ 06 июня 2011

Взгляните на Транзакция Apache Commons . Он поддерживает транзакционный доступ к файлам, выполняя работу во временных файлах и фиксируя работу, перемещая их в фактические файлы.

Вам также может быть интересен проект XADisk , хотя я не изучал его источники.

Что касается поиска, проекты Apache Solr и Lucene будут полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...