2013-08-06 61 views
-2

它們之間有什麼區別,以及如何選擇使用哪一個?Java NIO transferTo與Java文件renameTo

+1

與在任何文件系統中移動與複製相同。沒有Java特有的關於它。 – EJP

+0

您需要知道是否要複製文件(保留原文),或者重命名它(更改原件的位置)。 –

回答

2

File.renameTo()更改文件的名稱。如果目標文件名在另一個文件系統上,它可能會複製該文件的內容,但這取決於平臺。

NIO的FileChannel.transferTo()方法實際上將FileChannel(例如文件)的內容(即字節)複製到另一個位置。

因此,如果您在同一文件系統上使用renameTo(),則不會讀取/寫入字節,只會更改目錄列表中的文件名。

0

爪哇NIO

1-在Java NIO可以從一個通道數據直接傳輸到另一個。

2-可以使用java.rm.channels.FileChannel類的transferTo(..)和transferFrom(..)方法傳輸數據。

3-這些方法使用文件系統的底層優化,因此在某些情況下數據傳輸速度可能很快,特別是對於大型文件。但是請注意,執行特定於文件系統,並聲稱這種方法始終是快

文件.Rename到

java.io.File中它會是假的不包含任何準備化妝移動文件方法,但可以使用以下兩種替代方法解決: 1 -File.renameTo()。 2-複製到新文件並刪除原始文件

如果目標路徑在不同的文件系統上,renameTo不起作用。它將簡單地返回錯誤