2015-05-22 19 views
6

Tôi muốn tạo một hệ thống tệp trong bộ nhớ đơn giản trong Java, có một thư mục gốc và có thể tạo thư mục con mới. Trong thư mục chúng ta có thể tạo các tệp mới, viết chúng, đọc từ chúng, xóa chúng và cũng đổi tên chúng. Bạn có thể vui lòng đưa ra một số lời khuyên từ nơi bắt đầu (một đoạn mã đơn giản, hoặc resouce).Hệ thống tệp trong bộ nhớ trong java

Trả lời

4

Bạn có thể tạo hệ thống tệp trong bộ nhớ trong java bằng gói Jimfs và java 7 NIO của Google.

Vui lòng tham khảo liên kết này. Tại đây bạn sẽ nhận được hướng dẫn mẫu: create In-memory file system in java

+0

Rất tiếc, các jimfs gặp nhiều hạn chế. Đặt cược tốt nhất của bạn là sử dụng [memoryfilesystem] (https://github.com/marschall/memoryfilesystem). – fge

9

Nhà cung cấp hệ thống tệp tùy chỉnh phải triển khai lớp java.nio.file.spi.FileSystemProvider. Nhà cung cấp hệ thống tệp được xác định bằng lược đồ URI chẳng hạn như tệp, jar, bộ nhớ, cd.

Các liên kết dưới đây cung cấp tốt thông tin bắt đầu

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

Các liên kết dưới đây (không phải về trong hệ thống tập tin bộ nhớ) là về hệ thống tập tin ảo. Nó nói về một số vấn đề thiết kế có thể giúp bạn trong trường hợp bạn quyết định tạo hệ thống tệp riêng của mình.

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

Nhưng bạn có thể luôn luôn sử dụng đã được xây dựng và thử nghiệm code.This sẽ nhanh hơn và dễ dàng hơn để duy trì và bạn sẽ nhận được hỗ trợ trong điều kiện lỗi.

Hãy xem jimfs (Một hệ thống tập tin trong bộ nhớ cho Java 7+)

https://github.com/google/jimfs

Cũng nhìn vào

Commons ảo File System http://commons.apache.org/proper/commons-vfs/

marschall (An trong bộ nhớ thực hiện của một Hệ thống tệp JSR-203) https://github.com/marschall/memoryfilesystem

+0

Ví dụ thứ hai không thực sự phù hợp với nio2. Tốt hơn nên phân loại chúng;) – fge

+0

@fge Đã thêm một số thông tin về liên kết để tránh nhầm lẫn. – Raj

+0

OK nhưng sau đó là năm 2015; apache-common-vfs về cơ bản là lỗi thời :) – fge

2

Sử dụng memoryfilesystem.

Jimfs đã được đề cập trong câu trả lời trước, nhưng hệ thống bộ nhớ xử lý nhiều hơn nữa.

Ví dụ sử dụng:

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

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

Files.createDirectory(dir); 

vv vv Sử dụng các API java.nio.file để thao tác tập tin trong này (File sẽ không hoạt động!). Xem here để biết thêm chi tiết.

+2

Tôi cần 'File' để làm việc trong bộ nhớ cho cả đọc và viết. Bất kỳ ý tưởng? – Jus12

Các vấn đề liên quan