2011-04-01 35 views
4

對於我的用例,我想在內存目錄中存儲一些文件很短的時間。實際上,我在運行時將源代碼編譯爲.class文件,並加載並執行它們。乾淨的方法是創建一個虛擬目錄,讓編譯器在那裏創建.class文件。當然,我可以使用一個臨時目錄,但我必須在編譯之前清洗它,我不知道如果我使用的唯一一個,等如何在內存中創建一個目錄?僞文件系統/虛擬目錄

那麼,是和它是如何可能在Java的內存中創建一個虛擬的目錄?

回答

8

在Java 6中,在Java應用程序中做這種事情是不可能的。您需要依靠操作系統平臺來提供僞文件系統。

在Java 7中,NIO API已擴展爲提供一個API,允許您定義新的文件系統;見FileSystemProvider

Apache Commons VFS是另一種選擇,但是它有幾個特點,可能會導致對現有代碼和(第三方)庫問題:

  • 文件和VFS目錄使用URL命名的,不File對象。因此,使用File進行文件操作的代碼將不起作用。

  • FileInputStreamFileOutputStreamFileReaderFileWriter不會爲同樣的原因與VFS工作。

2

這聽起來像你可以使用ramdisk。有很多應用程序會這樣做,你使用的將取決於目標操作系統。我不知道任何原生支持這個的Java API。

相關問題