你的位置:首页 > Java教程

[Java教程]java 文件切割,为什么在关闭流的时候报错,51行


 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 stub15     this.file = file;16     this.size = size * 1024 * 1024;17 18   }19 20   public void Spliting() throws IOException {21     // TODO Auto-generated method stub22 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行关闭读取文件流的时候,报错,说是什么编译错误。求个大大神指点。如看懂给我留言