2013-03-10 80 views
9

我需要用文件系统中的文件存储自定义数据(每个文件大约有50个字节)。我没有任何其他存储空间来保存数据,也无法为此创建额外的文件。这些是我的要求,我无法改变它。什么文件系统支持Java UserDefinedFileAttributeView?

我发现这可以使用UserDefinedFileAttributeView类来完成。

什么文件系统支持此功能? NTFS,FAT,Linux上的任何其他文件系统?

数据实际存储的位置和可靠性如何?

回答

5

我已经通过UserDefinedFileAttributeView测试了以下文件系统支持的自定义属性: NTFS,Ext4,ZFS。其他流行的文件系统也可能支持它们。 在以下文件系统FAT32,HFS +中找不到支持。

2

我还没有找到所有支持的文件系统的完整列表。看起来像许多现代文件系统(ntfs,ext *)都受支持。正确使用这些用户定义属性的唯一方法是在读取和写入数据之前调用supportsFileAttributeView

您也可以尝试Preferences API它将数据存储在某些由JVM管理的存储中,因此在技术上不会创建任何文件。

4

我发现依靠一些列表不够个人。始终有一种方法可以询问底层实现,支持哪些视图以及是否支持任何具体视图。看看下面的代码:

final FileSystem defaultFS = FileSystems.getDefault(); 

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

随着输出:

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 

你可以阅读更多的在我的岗位上File attributes in NIO.2

相关问题