2014-01-07 5 views
0

Есть эффективный способ, чтобы скопировать файл в Java, чтобы около 100 папок без использованияКопирование файлов в нескольких местах

private static void copyFileUsingJava7Files(File source, File dest) 
     throws IOException { 
    Files.copy(source.toPath(), dest.toPath()); 
} 

100 раз

+1

Что вы считаете неэффективным в использовании 'Files.copy'? – Raedwald

+0

Почему бы не создать 100 ссылок на один файл? –

+0

Что происходит с исполнением вашего блока кода, который вы пожелаете, другим? Можете ли вы показать, как выглядят ваши структуры данных? Фактически вызов метода тривиален, даже делая его 100 раз со списком назначений. Я предполагаю, что есть какое-то препятствие либо структурно, либо в производительности, чего вы бы хотели избежать, но без дополнительного контекста я не уверен, как ответить – OYRM

ответ

0

Я не пример кода для вас но думаю, что наиболее эффективным способом было бы настроить асинхронную операцию для обработки всех копий файлов.

Вам все равно нужно сделать что-то похожее на то, что у вас есть, но оно не будет ждать завершения каждого из них, как вы могли бы получить стандартный цикл. Отправляйте их там асинхронно и позволяйте операционной системе обрабатывать все жонглирование задач, чтобы как можно быстрее выполнить все действия.

В дополнение к этому, если вы копируете один файл в несколько местоположений, вы можете прочитать файл в памяти, а затем скопировать файл в память в место назначения. Это поможет избежать таких проблем, как медленное чтение файлов и ожидание заблокированных файлов, которые могут возникать при чтении с диска.

0

Никакой другой вариант не будет эффективным, кроме простого использования метода копирования.

Смежные вопросы