我正在开发一个基本的下载管理器,它可以使用多个连接通过http下载文件。在下载结束时,我有几个临时文件包含每个文件的一部分。用Java合并二进制文件的最佳方法
我现在想把它们合并成一个文件。
要做到这一点并不难,只需创建一个输出流并输入流,然后将输入以良好的顺序输入输出。
但我想知道:有没有办法更有效地做到这一点?我的意思是,根据我的理解,这里将发生什么是JVM将每字节读取输入字节,并将每个字节的输出写入字节。
所以基本上我有: - 内存 店字节 - - 从磁盘读取 字节一些CPU指令可能会运行和字节可能会被复制到CPU的缓存 - 写字节磁盘
我想知道是否有办法在磁盘上保留进程?我不知道我是否可以理解,但基本上要告诉磁盘“嘿盘,把你的这些文件,并与他们一个”
在一个简短的句子,我想减少CPU &内存使用情况尽可能最低。
在这里你去:https://thomaswabner.wordpress.com/2007/10/09/fast-stream-copy-using-javanio-channels/ – 2016-05-15 10:54:24
连接文件是太罕见的操作,以添加到常见的低级别DOS操作。但上面的链接还有很长的路要走。请注意,它的一个优化是使用大小为最常用磁盘页面大小的大型中间缓冲区。 – usr2564301
@RafaelOsipov:这看起来很不错,谢谢 – Tiller