Здравствуйте, sergey123_1, Вы писали:
_>Попробовал делать Bufferred и для in и для out разными способами, либо потребляется ещё больше cpu, либо столько же, сколько и Files.copy
Это да, проверил — java или ОCь (windows 7) сама оптимизирует запись на диск (файл растет большими кусками по 10-50 мегабайт за раз). Хотя у меня CPU практически не жрет (больше 1% в диспетчере задач не показывает).
П.с. хотя тот же curl стабильно 0% показывает. Издержки JVM тут ничего не поделаешь.
П.п.с
https://bugs.openjdk.java.net/browse/JDK-8069327
========================================================
Хороший совет дают на стек оверфлове:
http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java
Возможно то что надо:
Using transferFrom() is potentially much more efficient than a simple loop that reads from the source channel and writes to this channel. Many operating systems can transfer bytes directly from the source channel into the filesystem cache without actually copying them.