Я делаю приложение, которое включает в себя копирование файлов, но когда я перехожу через большой каталог (1000+) и копирую их в другую папку, он использует 290 МБ ОЗУ.Копирование файла без создания файла FileOutputStream
Да, возможно ли каким-либо образом изменить File
из FileOutputStream
, не создавая новый экземпляр класса FileOutoutStream
?
EDIT:
Вот мой Java 7 API версии.
Path source = FileSystems.getDefault().getPath(Drive.getAbsolutePath(), files[i].getName());
Path destination = FileSystems.getDefault().getPath(Save);
try {
Files.copy(source, destination);
} catch (FileAlreadyExistsException e) {
File file = new File(Save + files[i]);
file.delete();
}
Имейте в виду, что это в цикле for, который проверяется на 1000+ количество файлов. С текущего метода я использую 270+ Мб ОЗУ
Вы закрываете свои потоки? –
Какая версия Java? От этого зависит идеальный ответ. Java 7 имеет новый API файлов, который намного лучше, чем тот, который был доступен до этого. – fge
Шахта - 7u21. Но использование 7u17 - это опция – zfollette