2012-11-19 67 views
1

我想知道在FileUtils中只有靜態方法有什麼意義?是否有一個沒有實例方法的理由?我相信FileUtils是線程安全的(糾正我,如果我錯了大聲笑),但我確實有一堆線程同時使用FileUtils方法,並且好像有多個實例會比有同步代碼更好。是否有一個模仿FileUtils庫的庫,但不包含任何靜態方法?Java庫像org.apache.commons.io.FileUtils但包含實例方法,而不是靜態方法

+0

你爲什麼認爲它有同步方法?它不是 –

+0

我曾經在某處讀過,這就是爲什麼我說我可能是錯的。那麼在哪裏有一個線程安全版本的FileUtils? –

+2

它不必具有同步方法是線程安全的,它只需要是無狀態的,它應該是。 –

回答

9

我想知道在FileUtils中只有靜態方法有什麼意義?是否有一個沒有實例方法的理由?

因爲FileUtils是無狀態方法的集合。爲它引入一個對象是沒有意義的 - 它會包含什麼?

我相信FileUtils是線程安全的。

這一切都取決於你想要達到什麼樣的目標和如何實現目標。如果你嘗試從多個線程中讀取,甚至在多個線程中讀取相同的文件,它都能正常工作。但是,如果你嘗試要從多個線程寫入相同的文件,您可能會遇到一些問題。這些問題將由於您使用相同的文件來寫東西而導致干擾,因此實際上並不會使FileUtils不是線程安全的。

+0

好點大聲笑。 –

+0

我不會有不同的線程修改同一個文件。每個線程都有不同的文件可供使用。 –

+0

你應該沒問題。 – ShyJ