2016-04-02 50 views

回答

2

您給出的createTempFile變體需要指定文件的包含目錄。如果該目錄位於操作系統管理的臨時文件存儲區中(例如類Unix系統中的/tmp),則必須將其從臨時層級移動(複製)到「常規」目錄位置。但是,如果指定的目錄已經在這樣的地方之外,那麼你很好。

File類有助於通過提供File#createTempFile(String prefix, String suffix)來抽象出「OS管理的臨時文件存儲」的概念,因此代碼不需要知道(或找出)適當的OS-temp目錄(Java運行時會爲此您)。這些文件是在OS管理的臨時目錄中創建的,需要複製才能成爲永久性目錄。另外,考慮到臨時文件的「臨時性」通常是指它們在系統重新啓動後無法存活(通常,它們甚至不能在關機期間存活)。因此,臨時文件在操作系統生命週期中已經是永久的;如果你需要在重新啓動時保持永久性,那麼你要麼首先在一個持久的位置創建臨時文件,要麼確保在那裏移動(複製)它們。

但是,我想知道,他們在第一個地方是什麼樣的「臨時」文件?

+0

我有一個問題,我無法在活動中分享位圖,所以我將它們(連同其他數據)一起放入一個文件中。現在對於第二個活動,這個文件是臨時的,因爲它只是將數據傳遞給第一個活動。但是第一個活動必須將這個確切的文件存儲在其他地方。 – Distjubo

+1

問題是第二個活動不知道把它放在哪裏,所以它將它存儲在一個臨時文件中,然後第一個活動決定把它放在哪裏。 – Distjubo

相關問題