Mam prostą aplikację Java, która próbuje skopiować plik przez sieć WAN (z Irlandii do NY).FileUtils.copyFile kończy się niepowodzeniem w przypadku dużych plików
Niedawno zmodyfikowałem go, aby używać FileUtils
, ponieważ natywna kopia pliku Java była zbyt wolna. Zbadałem i odkryłem, że ponieważ Fileutils
używa NIO, to jest lepsze. Kopia plik teraz działa świetnie, ale czasami muszę skopiować bardzo dużych plików (> 200MB) i kopiowanie nie powiedzie się z powodu błędu:
java.io.IOException: Failed to copy full contents from...
wiem błąd oznacza, że rozmiar pliku docelowego nie jest taka sama jak źródło, więc początkowo doszedłem do wniosku, że to były problemy z siecią. Proces próbuje kilkakrotnie kopiować plik co kilka godzin, ale nigdy nie jest pomyślny. Jednak, gdy ręcznie skopiuję plik za pomocą eksploratora Windows, to działa dobrze. Wydaje się, że to wyklucza sieć ... ale nie jestem tego pewien.
Szukałem, ale nie mogłem znaleźć żadnych postów o tym samym numerze. Każda pomoc będzie bardzo ceniona.
Dzięki!
Dodatek:
Używam tej metody fileutils:
public static void copyFile(java.io.File srcFile, java.io.File destFile) throws java.io.IOException
Istnieje wiele metod o nazwie 'copyFile' w' FileUtils'. Jeśli dodasz trochę kodu, aby pokazać dokładnie to, co robisz, możemy zapewnić dodatkową pomoc. –
Możliwe duplikaty http://stackoverflow.com/questions/15805303/copying-a-file-using-fileutils-copyfile –
Witam, widziałem post, o którym wspomniałeś, ale ma to związek z blokowaniem plików. Za każdym razem, gdy kopiuję plik, ma on unikalną nazwę, więc nie mam tego problemu. – Tony