【java 断点续传】
模拟 断点续传
首先,先读取word文件的 一部分
package com.sxd.readLines; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import org.junit.Test; /**
* 测试 字符流 追加
* @author Administrator
*
*/
public class Append4File { @Test
public void append() throws IOException{
FileInputStream inStream = new FileInputStream(new File("d:/song/sa.docx"));
FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true);
byte[] arr = new byte[1024*50];//读取1MB
System.out.println("文件总长度"+inStream.available());
System.out.println("实际读取长度:"+inStream.read(arr));
outStream.write(arr);
outStream.close();
inStream.close();
}
}
此时文件 读取了一部分 ,接下来测试 文件是否可以 追加后 完整打开
package com.sxd.readLines; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import org.junit.Test; /**
* 测试 字符流 追加
* @author Administrator
*
*/
public class Append4File { @Test
public void append() throws IOException{
FileInputStream inStream = new FileInputStream(new File("d:/song/sa.docx"));
FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true);
byte[] arr = new byte[inStream.available()-51200];//读取1MB
System.out.println("文件总长度"+inStream.available());
System.out.println("跳过的长度:"+inStream.skip(51200));
outStream.write(arr);
outStream.close();
inStream.close();
}
}
测试后发现 文件可以完整打开 这样的话 是可以实现断点续传的。
关于:
FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true);
将第二个参数设置为true是可以实现追加的。
【java 断点续传】的更多相关文章
- Java断点续传(基于socket与RandomAccessFile的简单实现)
Java断点续传(基于socket与RandomAccessFile的简单实现) 这是一个简单的C/S架构,基本实现思路是将服务器注册至某个空闲端口用来监视并处理每个客户端的传输请求. 客户端先获得用 ...
- 很简单的Java断点续传实现原理
原理解析 在开发当中,"断点续传"这种功能很实用和常见,听上去也是比较有"逼格"的感觉.所以通常我们都有兴趣去研究研究这种功能是如何实现的? 以Java来说,网 ...
- java+断点续传
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
- java 断点续传(springMvc),可支持html5 vedio在线播放 posted @ 2017年3月11日 16:15:44
Controller @RequestMapping(value = "/getVedio") public void getVedio(HttpServletRequest re ...
- Atitit..文件上传组件选型and最佳实践总结(2)----断点续传
Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定 ...
- 浅谈文件断点续传和WebUploader的基本结合
0.写在前面的话 上篇博客已经是在8月了,期间到底发生了什么,只有我自己知道,反正就是心情特别糟糕,生活状态工作状态学习状态都十分不好,还有心思进取吗,No!现在状态好起来了,生活又充满了希望 :D ...
- Atitit..文件上传组件选择and最佳实践的总结(2)----HTTP
Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 怎样推断一个插件/控件是否支持断点续传?? 1 3. 经常使用的组件选型结果::马 1 4. ...
- Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)
首页 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 小程序 消息 登录注册 关闭 quartz_Cron表达式一分钟教程 09-05 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
随机推荐
- javascript 搜索并高亮显示
2015年12月22日 15:45:08 星期二 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者 ...
- Java for LeetCode 236 Lowest Common Ancestor of a Binary Tree
解题思路一: DFS到每个节点的路径,根据路径算出LCA: public class Solution { public TreeNode lowestCommonAncestor(TreeNode ...
- ALV 输入数据时数字缩小一千倍的问题解决
这个字段后面有三位小数 我输入 1 一回车 就变成了0.001 了 解决方法 DATA: wa_fieldcatalog TYPE lvc_s_fcat, "显示数据列内表工作 ...
- pdf.js使用教程
pdf.js框架的魅力所在,为其为HTML5实现的,无需任何本地支持,而且对浏览器的兼容性也是比较好,要求只有一个:浏览器支持HTML5就好了!(不过对于低版本的IE,就只能节哀了!) 据说IE9以上 ...
- 【文件】读取一个文件夹下所有的jpg图片
今天做视频处理的时候,发现给的视频是用jpg图片的形式给出的,名字的命名规律性不是很强.就想找一种通用的遍历文件夹下图片的方法. 开始在网上找到了下面这份代码,发现只能读取所有的文件夹,文件都被跳过了 ...
- LeetCode 171 Excel Sheet Column Number
Problem: Given a column title as appear in an Excel sheet, return its corresponding column number. F ...
- 在web.xml中classpath和classpath*的区别
classpath 和 classpath* 区别: classpath:只会到你指定的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径) ...
- JavaScript数组排序
JavaScript的sort方法排序是有问题的,我们可以给sort方法传一个参数 function Compare(value1, value2) { //数字排序的函数参数 if (value1 ...
- Swift - 让程序挂起后,能在后台继续运行任务
1,程序的挂起和退出 由于iOS设备资源有限.当用户点击了home键,或者另一个应用程序启动了.那么原先那个程序便进入后台被挂起,不是退出,只是停止执行代码,同时它的内存被锁定.当应用程序恢复时,它会 ...
- css设置网页文本选中样式
网页的默认的文本选中颜色是蓝底白字(大多应该是吧),这个样子: 感觉并不是特别好看,可以通过CSS3的一个特性,一个CSS3的伪类选择器::selection来设置文本被选中时的状态,比如本博客的主题 ...