2012-03-21 11 views
8

Zarówno File.renameTo jak i Files.move w Javie mogą przenosić plik. Jaka jest różnica między tymi dwoma? A który ma lepszą wydajność?Różnica między File.renameTo i Files.move: Który jest szybszy?

+1

Miałeś zapoznać się z dokumentacją przed wysłaniem pytanie? ['renameTo'] (http://docs.oracle.com/javase/6/docs/api/java/io/File.html#renameTo%28java.io.File%29), [' move'] (http : //docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#move%28java.nio.file.Path,%20java.nio.file.Path,%20java.nio .file.CopyOption ...% 29). Wygląda na to, że nie masz, więc otrzymasz odpowiedzi, które zostaną usunięte bezpośrednio z tej dokumentacji. –

+0

Offtopic - Pliki są tylko w JDK7. Apache common FileUtils bardzo nam pomógł. – Jayan

+0

Różnica w wydajności najprawdopodobniej nie jest ważna (chyba że trzeba usunąć tysiące plików i istnieje powód, dla którego jest to krytyczne pod względem wydajności). – Jesper

Odpowiedz

7
public boolean renameTo(File dest) 

Zmienia nazwę pliku oznaczony tej abstrakcyjnej ścieżki.

Wiele aspektów zachowanie tej metody są z natury zależne od platformy: Operacja zmiany nazwy może nie być w stanie przenieść plik z jednego systemu plików do drugiego i to może się nie powieść, jeśli plik z docelowy abstrakcyjna ścieżka już istnieje.

Source

Ale metoda move można przenieść lub zmienić nazwę pliku w niezależna od platformy sposób.

renameTo jest tylko zwrócenie logiczną typ ale move powraca ścieżkę do pliku docelowego

+1

Więc są one takie same pod względem wydajności? – TAAPSogeking

Powiązane problemy