码迷,mamicode.com
首页 > 其他好文 > 详细

文件传输出现断点

时间:2015-11-15 23:12:34      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

一:找个比较大的文件通过流传输,但是传到一半的时候突然断了,制造断点,判断源文件和传过来的文件长度是否一样;

如果源文件大于当地文件大小,则需要续传,

如果源文件等于当地文件,则全部传过来了,return本程序;

如果源文件等于零,则文件不存在;需要从头开始;

 

 1 /**
 2          * 断点文件制造机;专业制造断点
 3          */
 4         File src = new File("D:\\软件\\FeiQ.exe");
 5         File local = new File("G:\\A\\"+src.getName());
 6         
 7         try {
 8             InputStream in = new FileInputStream(src);
 9             OutputStream out = new FileOutputStream(local);
10             
11             byte[] bs = new byte[1024];
12             long over =0;
13             for (int len = 0; (len =in.read(bs)) !=-1;) {
14                 out.write(bs, 0, len);
15                 //文件传到了一半出现类断点
16                 over =over+len;
17                 if(over>src.length()/2){
18                     System.out.println("出现断点");
19                     break;
20                 }
21             }
22             out.close();
23             in.close();
24         } catch (FileNotFoundException e) {
25             e.printStackTrace();
26         } catch (IOException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         }

 

 

 

 

 

 

 1  */
 2         File src = new File("D:\\软件\\FeiQ.exe");
 3         File local = new File("G:/A/"+src.getName());
 4         
 5         System.out.println("源文件大小:"+src.length());
 6         
 7         long start = 0;//文件指针开始位置
 8         
 9         if(src.length()==local.length()){
10             System.out.println("文件已经存在,不需要复制,程序结束");
11             return;
12         }else if(local.length()==0){
13             System.out.println("文件不存在,需要从头开始");
14         }else if(src.length()>local.length()){
15             System.out.println("断点文件,需要续传...");
16             start = local.length();
17         }
18         
19         try {
20             //建立连接管道
21             InputStream in = new FileInputStream(src);
22             
23             //输出流追加
24             OutputStream out = new FileOutputStream(local, true);
25             
26             byte[] bs = new byte[2048];    
27 
28             //设置输入流起始位置
29             in.skip(start);
30             System.out.println("输入流起始位置:"+start);
31             
32             //循环复制
33             for(int len=0;(len=in.read(bs))!=-1;  ){
34                 out.write(bs, 0, len);
35             }
36             
37             System.out.println("传输结束");
38             
39             //释放资源,人走关灯
40             out.close();
41             in.close();
42             
43         } catch (FileNotFoundException e) {
44             e.printStackTrace();
45         } catch (IOException e) {
46             e.printStackTrace();

 

文件传输出现断点

标签:

原文地址:http://www.cnblogs.com/yinquanzhe/p/4967656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!