1 package java_IO.Test_1.File_Split_and_SequeceDemo; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 public class FileSplit { 9 10 private File file; 11 private int size; 12 13 public FileSplit(File file, int size) { 14 // TODO Auto-generated constructor stub 15 this.file = file; 16 this.size = size * 1024 * 1024; 17 18 } 19 20 public void Spliting() throws IOException { 21 // TODO Auto-generated method stub 22 23 // 读取源文件 24 FileInputStream fis = new FileInputStream(file); 25 26 // 创建碎片文件存放目录,若碎片存放目录不存在刚创建 27 File dir = new File(file.getParent(), "filesPart"); 28 if (!dir.exists()) { 29 dir.mkdirs(); 30 } 31 32 // 创建缓存区 33 byte[] bufb = new byte[1024 * 1024]; 34 int len = 0; 35 36 for (int i = 1;; i++) { 37 int sumSize = 0; 38 File filePart = new File(dir, i + ".part"); 39 FileOutputStream fos = new FileOutputStream(filePart); 40 while (sumSize < size) { 41 if ((len = fis.read(bufb)) != -1) { 42 fos.write(bufb, 0, len); 43 sumSize += len; 44 } 45 46 } 47 fos.close(); 48 49 50 } 51 fis.close(); 52 53 54 } 55 56 57 }
上述代码实现的是一个文件切割的功能,构造函数参数file是接收要切割的文件,size是用户指定的每个碎片文件的大小 ,问题是在我最后也就是51行关闭读取文件流的时候,报错,说是什么编译错误。求个大大神指点。如看懂给我留言
时间: 2024-11-05 17:22:43