多线程下载文件,基本上要靠essFile这个类,该类可以随机读取文件,下面是我以前写的一个多线程复制文件的例子,希望对你能有帮助:
.ff;
import java.io.*; import ess;
public class Demo{ public static void main(String[] args) throws Exception{ File srcFile=new File("源文件路径"); File=new File("目标文件路径"); /File.createNewFile(); Demo demo=new Demo(); demo.analysisFile(File,4);//4为线程数,你也可以修改为其他数值 } public void analysisFile(File srcFile,File,int threadNum){ int length=(int)srcFile.length(); int splitNum=length%threadNum==0?length/threadNum:length/threadNum+1; int skipPostion=-1; int readNum=0; for(int i=1;i<=threadNum;i++){ if(i!=threadNum){ readNum=i*splitNum; } else{ readNum=length-readNum; }
new SplitFile(File,skipPostion+1,readNum).start(); skipPostion=i*splitNum; } } class SplitFile extends Thread{ private int minPosition; private int maxPosition; private File srcFile; private File; public SplitFile(File srcFile,File,int minPosition,int maxPosition){ this.maxPosition=maxPosition; this.minPosition=minPosition; this.srcFile=srcFile; File; } public void run(){ try{ essFile raf_r=new essFile(srcFile,"rw"); essFile raf_w=new File,"rw"); raf_r.skipBytes(minPosition); raf_w.seek(minPosition); byte[] buf=new byte[1]; int alreadyRec=0; for(int size=0;alreadyRec<=maxPosition&&size!=-1;size=raf_r.read(buf)){ alreadyRec+=size; raf_w.write(buf,0,size); } raf_w.close(); raf_r.close(); System.out.println("总共:"+srcFile.length()+" 文件"+srcFile.getName()+"从:"+minPosition+"开始---复制大小:"+maxPosition+"结束!此刻接收文件大小为:"File.length()); } catch(Exception ex){ ex.printStackTrace(); } } } }
达州创梦网络怎么样,达州创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,一手四川托管服务商,成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快,直连省骨干,大网封UDP,无视UDP攻击,机房集群高达1.2TB,单机可提供1...
				  艾云怎么样?艾云是一家去年年底成立的国人主机商家,商家主要销售基于KVM虚拟架构的VPS服务,机房目前有美国洛杉矶、圣何塞和英国伦敦,目前商家推出了一些年付特价套餐,性价比非常高,洛杉矶套餐低至85元每年,给500M带宽,可解奈飞,另外圣何塞也有特价机器;1核/1G/20G SSD/3T/2.5Gbps,有需要的朋友以入手。点击进入:艾云官方网站艾云vps促销套餐:KVM虚拟架构,自带20G的防御...
				  LetBox此次促销依然是AMD Ryzen处理器+NVME硬盘+HDD大硬盘,以前是5TB月流量,现在免费升级到10TB月流量。另外还有返余额的活动,如果月付,月付多少返多少;如果季付或者半年付,返25%;如果年付,返10%。依然全部KVM虚拟化,可自定义ISO系统。需要大硬盘vps、大流量vps、便宜AMD VPS的朋友不要错过了。不过LetBox对帐号审核严格,最好注册邮箱和paypal帐号...