對於我的用例,我想在內存目錄中存儲一些文件很短的時間。實際上,我在運行時將源代碼編譯爲.class
文件,並加載並執行它們。乾淨的方法是創建一個虛擬目錄,讓編譯器在那裏創建.class文件。當然,我可以使用一個臨時目錄,但我必須在編譯之前清洗它,我不知道如果我使用的唯一一個,等如何在內存中創建一個目錄?僞文件系統/虛擬目錄
那麼,是和它是如何可能在Java的內存中創建一個虛擬的目錄?
對於我的用例,我想在內存目錄中存儲一些文件很短的時間。實際上,我在運行時將源代碼編譯爲.class
文件,並加載並執行它們。乾淨的方法是創建一個虛擬目錄,讓編譯器在那裏創建.class文件。當然,我可以使用一個臨時目錄,但我必須在編譯之前清洗它,我不知道如果我使用的唯一一個,等如何在內存中創建一個目錄?僞文件系統/虛擬目錄
那麼,是和它是如何可能在Java的內存中創建一個虛擬的目錄?
在Java 6中,在Java應用程序中做這種事情是不可能的。您需要依靠操作系統平臺來提供僞文件系統。
在Java 7中,NIO API已擴展爲提供一個API,允許您定義新的文件系統;見FileSystemProvider
。
Apache Commons VFS是另一種選擇,但是它有幾個特點,可能會導致對現有代碼和(第三方)庫問題:
文件和VFS目錄使用URL命名的,不File
對象。因此,使用File
進行文件操作的代碼將不起作用。
FileInputStream
,FileOutputStream
,FileReader
和FileWriter
不會爲同樣的原因與VFS工作。
我不確定這是否有用,但請檢查Apache Commons VFS。
看來你需要的是內存文件系統。
這聽起來像你可以使用ramdisk。有很多應用程序會這樣做,你使用的將取決於目標操作系統。我不知道任何原生支持這個的Java API。