扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Java如何快速复制大文件
我希望从本地和远程复制文件,文件都很大,10G级的,如何快速的复制?看网上有人说使用管道到管道,这确实比其他的快,不知道fastcopy是怎样实现的
本地远程复制大文件啊,而且还是10G这么大的。你看看迅雷啊,他是多部分一起传的。java传输文件就是一般的文件操作啊,你可以模仿迅雷,开多个线程下载,每个线程记录下载部分的开始和结束索引,一起下到远程去。至于效率有多高,java我还真不敢说,要不迅雷,快车这种工具怎么不用java来开发。
用FileChannel的transferTo(long position, long count, WritableByteChannel target)方法试试
public static void main(String[] args)throws Exception{
FileInputStream fileIn=new FileInputStream("d:/JavaTests/TestFileChannel.txt");
FileOutputStream fileOut=new FileOutputStream("d:/JavaTests/TestFileOutputStreamCopyTime.txt");
int i;
long l=System.currentTimeMillis();
while((i=fileIn.read())!=-1){
fileOut.write(i);
}
System.out.println("Take time:"+(System.currentTimeMillis()-l)+"ms");//516ms
fileIn.close();
fileOut.close();
至于效率有多高,java我还真不敢说,要不迅雷,快车这种工具怎么不用java来开发。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。