文件传输出现断点

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

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

如果源文件等于当地文件,则全部传过来了,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();
时间: 2024-11-08 10:05:53

文件传输出现断点的相关文章

iOS开发网络请求——大文件的多线程断点下载

iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大小比较小导致传输所需时间少传输就快,因此不太容易影响用户体验,可用的技术就多.而大文件因为文件大小比较大导致传输时间长,因此就需要考虑到各种用户体验,比如避免在上传下载文件过程中阻塞主线程影响用户体验,就需要使用到多线程技术:为了给用户友好的进度提示,因此又需要开发中跟踪数据上传和下载数据的变化:为

Linux 指令详解 curl 文件传输

指令:curl 在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 工作原理:curl命令使用了libcurl库来实现,libcurl库常用在C程序中用来处理HTTP请求,curlpp是libcurl的一个C++封装,这几个东西可以用在抓取网页.网络监控等方面的开发,而curl命令可以帮助来解决开发过程中遇到的问题. 语法:# curl [option] [ur

微信文件传输助手文件夹在哪?一起来找找

微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧 1.先说说手机微信文件传输助手文件夹在哪吧 文件夹路径为/Tencent/MicroMsg/Download/ 2.电脑版微信文件传输助手文件夹在:/微信安装保存目录/wechat files/微信号/ 也可以点击接收到的图片下载保存到相应位置即可

详解“FTP文件传输服务”安装配置实例

"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsftpd.conf配置文件详解 配置FTP服务器实例 实例:配置匿名用户 实例:配置本地用户登录 实例:配置虚拟用户登录(MySQL认证) 实例:控制用户登录 实例:设置欢迎信息 分析vsftpd日志管理 FTP服务器配置与管理 简介 FTP 是File Transfer Protocol(文件传输协议)的英文简

linux网络环境下socket套接字编程(UDP文件传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux

FTP文件传输协议之vsftpd服务

一.FTP服务概述 FTP(File Transfer Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件.客户端软件共同实现文件传输功能 FTP服务器默认使用TCP协议的20.21端口与客户端实现通信.20端口用于建立数据连接,并传输数据文件:21端口用于建立控制连接,并传输FTP控制命令.FTP数据连接分为主动模式和被动模式 主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接 vsftpd软件 vsftpd是目前在Linux/Unix领域应用十分

运维学习之Linux系统中的文件传输、归档、压缩

不同系统之间的文件传输 1.文件归档 1. 文件归档,就是把多个文件变成一个归档文件 2. tar c ##创建 f ##指定归档文件名称 t ##显示归档文件中的内容 r ##向归档文件中添加文件 --get ##取出单个文件 --delete ##删除单个文件 x ##取出归档文件中的所有内容 -C ##指定解档目录 -z ##gz格式压缩 -j ##bz2格式压缩 -J ##xz格式压缩 2.压缩 gz gzip etc.tar ##压缩成gz格式 gunzip  etc.tar.gz #

FTP文件传输服务器(详解)

  FTP文件传输服务器 一实验目标 安装配置VSFTP 实战匿名访问VSFTP 实战用户名密码方式访问VSFTP 实战ftp虚拟帐号方式访问VSFTP   二实验环境 FTP服务端xuegod63.cn   IP192.168.1.63 FTP客户端xuegod64.cn   IP192.168.1.64   三FTP服务概述     FTP服务器File Transfer Protocol Server是在互联网上提供文件存储和访问服务的计算机它们依照FTP协议提供服务.VSFTP是一个基于

c# 局域网文件传输实例

一个基于c#的点对点局域网文件传输小案例,运行效果截图 //界面窗体 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading;using System.Threading.Task