I am focusing on a task at this time which will take advantage of Java File I/O that goes past the easy "write this string to some file" documentation and lessons which i find around the internet. This project will basically give a database mechanism, like the popular "NoSQL" databases which are attaining lots of press nowadays. However, I am not able to locate a lot of documentation that delivers more information which APIs to make use of, cooking techniques, etc. I have been searching for any generally recognized design designs around Java File I/O, but with no luck.

Basically needed to list a few needs, I'd say:

  • Pseudo-transactional support (not really a hard requirement, as possible implemented greater up within the API stack)
  • Capability to write data of the arbitrary length inside a structure that may be read back afterwards
  • Indexing
  • Capability to remove an item in the "database" effectively
  • Fast searching
  • Possible multi-threaded access (multiple read threads, single write, probably)

Can anybody point me to the lessons, documentation, design designs, etc. that might be useful? What are the free frameworks that center around Java File I/O? I understand of lots of frameworks that offer wrappers around NIO for that reasons of Network I/O, but nothing File-related.

Thank you for any assist you to can offer!

Have a look at Apache Commons Transaction. It supports transactional file access, by carrying out the job in temporary files, and carrying out the job by moving these to the particular files.

You could also want to consider the XADisk project, although I've not pored through it's sources.

So far as searching is worried, the Apache Solr and Lucene projects would help you.