2013-03-10 42 views
9

Tôi cần lưu trữ dữ liệu tùy chỉnh với một tệp trong hệ thống tệp (khoảng 50 byte với mỗi tệp). Tôi không có bất kỳ lưu trữ nào khác để giữ dữ liệu và không thể tạo thêm tệp cho tệp này. Đây là những yêu cầu của tôi, tôi không thể thay đổi nó.Các tệp hệ thống nào hỗ trợ Java UserDefinedFileAttributeView?

Tôi thấy rằng điều này có thể được thực hiện bằng cách sử dụng lớp UserDefinedFileAttributeView.

Hệ thống tệp nào hỗ trợ tính năng này? NTFS, FAT, bất kỳ hệ thống tệp nào khác trên Linux?

Dữ liệu thực sự được lưu trữ ở đâu và đáng tin cậy như thế nào?

Trả lời

5

Tôi đã thử nghiệm các thuộc tính tùy chỉnh được hỗ trợ bằng cách theo dõi các hệ thống tệp qua UserDefinedFileAttributeView: NTFS, Ext4, ZFS. Các hệ thống tệp phổ biến khác cũng có thể hỗ trợ chúng. Không tìm thấy hỗ trợ nào trong các hệ thống tệp FAT32, HFS + sau.

2

Tôi chưa tìm thấy bất kỳ danh sách toàn diện nào của tất cả các hệ thống tệp được hỗ trợ. Có vẻ như nhiều hệ thống tệp hiện đại (ntfs, ext *) được hỗ trợ. Cách duy nhất để sử dụng đúng các thuộc tính do người dùng xác định này là gọi supportsFileAttributeView trước khi đọc và ghi dữ liệu của bạn.

Bạn cũng có thể thử Preferences API nó lưu trữ dữ liệu trong một số lưu trữ do JVM quản lý, do đó về mặt kỹ thuật bạn không tạo bất kỳ tệp nào.

4

Tôi thấy dựa vào một số danh sách không đủ cá nhân. Luôn luôn có cách để yêu cầu triển khai cơ bản, chế độ xem nào được hỗ trợ và liệu xem có hỗ trợ chế độ xem cụ thể hay không. Kiểm tra mã sau:

final FileSystem defaultFS = FileSystems.getDefault(); 

for (String fileAttributeView : defaultFS.supportedFileAttributeViews()) { 
    System.out.println("Default file system supports: " + fileAttributeView); 
} 

Với công suất:

Default file system supports: acl 
Default file system supports: basic 
Default file system supports: owner 
Default file system supports: user 
Default file system supports: dos 

Bạn có thể đọc thêm trong bài viết của tôi trên File attributes in NIO.2

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