web-dev-qa-db-ja.com

javaのメモリ内ファイルシステム

ルートディレクトリが1つあり、新しいサブディレクトリを作成できるJavaで単純なメモリ内ファイルシステムを作成したいと思います。ディレクトリでは、新しいファイルの作成、書き込み、読み取り、削除、名前の変更を行うことができます。どこから始めればよいかアドバイスをいただけますか(簡単なコード、またはリソース)。

12
alle3x

カスタムファイルシステムプロバイダーは、Java.nio.file.spi.FileSystemProviderクラスを実装する必要があります。ファイルシステムプロバイダーは、file、jar、memory、cdなどのURIスキームによって識別されます。

以下のこれらのリンクは、良い開始情報を提供します

http://docs.Oracle.com/javase/7/docs/technotes/guides/io/fsp/filesystemprovider.html

以下のリンク(メモリ内のファイルシステムについてではありません)は、仮想ファイルシステムに関するものです。独自のファイルシステムを作成する場合に役立つ可能性のあるいくつかの設計上の問題について説明します。

http://www.flipcode.com/archives/Programming_a_Virtual_File_System-Part_I.shtml

ただし、すでにビルドおよびテストされたコードをいつでも使用できます。これにより、保守がより速く簡単になり、エラー状態でサポートを受けることができます。

jimfsを見てください(Java 7 +)のメモリ内ファイルシステム

https://github.com/google/jimfs

また調べてください

Commons仮想ファイルシステムhttp://commons.Apache.org/proper/commons-vfs/

marschall(JSR-203ファイルシステムのメモリ内実装)https://github.com/marschall/memoryfilesystem

18
Raj

インメモリファイルシステムは、GoogleのJimfsとJava 7NIOパッケージを使用してJavaで作成できます。

このリンクを参照してください。ここにサンプルチュートリアルがあります: Javaでインメモリファイルシステムを作成する

4
Reena Upadhyay

memoryfilesystem を使用します。

Jimfsは以前の回答で言及されていますが、memoryfilesystemはさらに多くのことを処理します。

使用例:

final FileSystem fs = MemoryFileSystem.newLinux().build("myfs");

final Path dir = fs.getPath("thedir");

Files.createDirectory(dir);

などなど。Java.nio.fileAPIを使用して、この中のファイルを操作します(Fileは機能しません!)。詳細については、 ここ を参照してください。

3
fge