2013-03-10 119 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

相關問題