模拟 断点续传
首先,先读取word文件的 一部分
1 package com.sxd.readLines; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 import org.junit.Test; 9 10 /** 11 * 测试 字符流 追加 12 * @author Administrator 13 * 14 */ 15 public class Append4File { 16 17 @Test 18 public void append() throws IOException{ 19 FileInputStream inStream = new FileInputStream(new File("d:/song/sa.docx")); 20 FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true); 21 byte[] arr = new byte[1024*50];//读取1MB 22 System.out.println("文件总长度"+inStream.available()); 23 System.out.println("实际读取长度:"+inStream.read(arr)); 24 outStream.write(arr); 25 outStream.close(); 26 inStream.close(); 27 } 28 }
此时文件 读取了一部分 ,接下来测试 文件是否可以 追加后 完整打开
1 package com.sxd.readLines; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 import org.junit.Test; 9 10 /** 11 * 测试 字符流 追加 12 * @author Administrator 13 * 14 */ 15 public class Append4File { 16 17 @Test 18 public void append() throws IOException{ 19 FileInputStream inStream = new FileInputStream(new File("d:/song/sa.docx")); 20 FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true); 21 byte[] arr = new byte[inStream.available()-51200];//读取1MB 22 System.out.println("文件总长度"+inStream.available()); 23 System.out.println("跳过的长度:"+inStream.skip(51200)); 24 outStream.write(arr); 25 outStream.close(); 26 inStream.close(); 27 } 28 }
测试后发现 文件可以完整打开 这样的话 是可以实现断点续传的。
关于:
FileOutputStream outStream = new FileOutputStream(new File("d:/song/1.docx"),true);
将第二个参数设置为true是可以实现追加的。