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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 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行关闭读取文件流的时候,报错,说是什么编译错误。求个大大神指点。如看懂给我留言

以上是关于java 文件切割,为什么在关闭流的时候报错,51行的主要内容,如果未能解决你的问题,请参考以下文章

在java的exec上关闭流的正确方法是啥?

关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)?

java 读取输入流的时候cpu占用很高,怎么解决

关于java close()关闭流的问题

java中IO流操作怎样关闭流

java异常中的finally