2015-05-22 15 views
6

Chcę utworzyć prosty system plików w pamięci w Javie, który ma jeden katalog główny i może utworzyć nowy podkatalog. W katalogu możemy tworzyć nowe pliki, zapisywać je, czytać, usuwać, a także zmieniać ich nazwy. Czy możesz podać kilka wskazówek od czego zacząć (prosty kod lub resouce).System plików w pamięci w java

Odpowiedz

4

Możesz utworzyć system plików In-memory w java przy użyciu pakietu Jimfs i java 7 NIO Google.

Odsyłam ten link. Oto przykładowy samouczek: create In-memory file system in java

+0

Niestety, jimfs ma kilka ograniczeń. Najlepiej jest użyć [system plików pamięci] (https://github.com/marschall/memoryfilesystem). – fge

9

Niestandardowy dostawca systemu plików musi implementować klasę java.nio.file.spi.FileSystemProvider. Dostawca systemu plików jest identyfikowany za pomocą schematu URI, takiego jak plik, jar, pamięć, cd. poniżej

Linki te dostarczają dobrych informacji wyjściowych

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

Link poniżej (nie chodzi o system plików w pamięci) wynosi około wirtualnego systemu plików. Mówi o pewnych problemach z projektowaniem, które mogą ci pomóc na wypadek, gdybyś zdecydował się stworzyć własny system plików.

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

Ale zawsze można używać już zbudowane i przetestowane code.This będzie szybszy i łatwiejszy w utrzymaniu i otrzymasz wsparcie w stanach awaryjnych.

Spójrz na jimfs (system plików w pamięci dla Java 7+)

https://github.com/google/jimfs

zajrzeć także do

Gmin Wirtualny system plików http://commons.apache.org/proper/commons-vfs/

marschall (implementacja pamięci w postaci System plików JSR-203) https://github.com/marschall/memoryfilesystem

+0

Drugi przykład nie pasuje do nio2. Lepiej je sklasyfikować;) – fge

+0

@fge Dodano trochę informacji o łączu, aby uniknąć nieporozumień. – Raj

+0

OK, ale to jest 2015; apache-common-vfs jest w zasadzie przestarzały :) – fge

2

Użyj memoryfilesystem.

Jimfs został wymieniony w poprzedniej odpowiedzi, ale system plików pamięci obsługuje znacznie więcej.

Przykład użycia:

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

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

Files.createDirectory(dir); 

itp itd. Za pomocą API java.nio.file manipulować plików w tym (File nie będzie działać!). Aby uzyskać więcej informacji, patrz here.

+2

Potrzebuję 'File' do pracy w pamięci zarówno do czytania, jak i pisania. Jakieś pomysły? – Jus12

Powiązane problemy