利用InputStream和OutputStream流完成文件的断点续传,(原理)
来源:互联网 发布:淘宝上误点了确认收货 编辑:程序博客网 时间:2024/06/03 22:37
package test;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.util.Random;public class PrintTest {public static void main(String[] args) {// TODO Auto-generated method stub//文件断点续传File inFile = new File("D:\\test\\input.wmv");File outFile = new File("D:\\test\\output.wmv");System.out.println(inFile.length());FileInputStream fis = null;FileOutputStream fos = null;try {fis = new FileInputStream(inFile);fos = new FileOutputStream(outFile);} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}int inLength = 0;int index = 0;//用于记录读取的字节数组数//随机读取数组个数Random rd = new Random();int s = rd.nextInt(100);System.out.println("s = " + s);byte[] buf = new byte[1024];try {while((inLength = fis.read(buf)) != -1){index++;//读到一个字节数组了if (index <= s) {fos.write(buf,0,inLength);}else break;}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{try {fos.flush();fos.close();fis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}try {fis = new FileInputStream(inFile);fis.skip(outFile.length());//跳过已读数据fos = new FileOutputStream(outFile,true);} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {index = 0;while((inLength = fis.read(buf)) != -1){index++;//读到一个字节数组了fos.write(buf,0,inLength);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{try {fos.flush();fos.close();fis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
0 0
- 利用InputStream和OutputStream流完成文件的断点续传,(原理)
- OutputStream和InputStream流的结构
- IO流的InputStream和OutputStream
- InputStream和OutputStream的比较
- InputStream和OutputStream的理解
- 运用InputStream和OutputStream写个简单的拷贝文件
- 使用InputStream和OutputStream实现文件复制
- Java 字节流实现文件读写操作(InputStream-OutputStream)
- 关于JavaIO流InputStream和OutputStream的获取方法
- Java的InputStream和OutPutStream流输入与输出体会
- JAVA 的IO操作(二) 字节输出流和输入流:OutputStream和InputStream
- IO流——(字节流)OutputStream和InputStream
- Java基础--------(6)IO流InputStream和OutputStream
- 文件存储 OutputStream/InputStream
- InputStream OutputStream 操作文件
- java的InputStream和OutputStream的理解
- java的InputStream和OutputStream的理解
- java的InputStream和OutputStream的理解
- excel排版大师测试记录:对两个约3000行、30列的excel文件分割为pdf文件
- Kmeans原理及实现
- 【算法设计与数据结构】URAL 1323. Classmates
- C++头文件相互引用
- iOS调用系统照相机和闪光灯功能
- 利用InputStream和OutputStream流完成文件的断点续传,(原理)
- 数字字符串与数字相互转化-atoi函数和itoa函数的实现
- Swift学习笔记12——下标(Subscripts)
- 面向对象
- ACM_并查集
- PHP对象类型在内存中的分配
- 《深入理解Linux网络技术内幕》阅读笔记(十四)
- Android configuration使用 为什么监听事件onConfigurationChanged没有反应
- Sublime Text 3 的安装及注册