2012-02-12 22 views
0

如若File類系統地處理文件時使用的還是有它的確定使用String s到代表路徑和文件名的情況下?使用字符串或文件類文件打交道時

+4

有時[URI](http://docs.oracle.com/javase/6/docs/api/java/net/URI.html)可能是適當的,以及。 – 2012-02-12 16:40:42

+3

如果您使用Java 7,請查看「路徑」。 – 2012-02-12 16:42:40

回答

4

如果你看看那個拿無論是StringFile,你會看到各種文件流/讀/寫器類,這需要一個String是方便過載,需要一個File構造函數的構造函數。換句話說,String構造函數通常會從路徑名字符串中創建一個File並調用其他構造函數。

因此,使用File版本可能節省建設新File對象。

另一方面,File實例將佔用比等效的String更多的內存,創建File實例的成本與打開和讀取/寫入文件的成本相比較小。

的底線是,它可能不會從性能的角度來看一個小規模的申請事項。對於大規模應用,最合適的方法取決於應用程序實際在做什麼;例如無論它是否重複使用相同的文件。


而且正如評論所說,還有其他的方法來「表示」文件/路徑;例如「file:」URL和Java類。

1

一個File實例表示本地文件系統上的路徑。如果這就是你想要的變量,那就是適合的類。如果沒有(如簡單的文件名或另一臺機器上的文件路徑),請使用其他的東西。

1

File類就是這樣一個類。您可以使用表示文件路徑的字符串構造它。但它需要額外的操作來處理文件。那時你很可能會招致大部分的性能成本。文件IO,流讀取或寫入等。您可以使用此類來查找包含權限的文件信息。

如果你沒有做這些動作中的一個,那麼你應該考慮在這個線程中提到的其他替代品之一。

相關問題