说明:在附件分片上传的时候,有一步是将分片文件合并在一个序列流SequenceInputStream中,通过遍历序列流中的每个文件输入流的availiable()字节数和文件真实的字节数相比,得出结果是:遍历序列流后的结果比文件真实大小结果小
代码示例:
(1)遍历序列流
Vector<FileInputStream> v = new Vector<FileInputStream>();
//增加文件
v.add(new FileInputStream(fileUrl));
...
Enumeration<FileInputStream> en = v.elements();
InputStream fileInputStream = new SequenceInputStream(en);
//计算合并后的文件大小。这种计算方法得出的结果比文件真实大小小
long fileAvailable = 0;
while(en.hasMoreElements()){
InputStream inputStream = (FileInputStream)en.nextElement();
fileAvailable += inputStream.available();
}
(2)文件真实大小
File file1 = new File("E:/"+fileName);
InputStream in = new FileInputStream(file1);
System.out.println(in.available());File file1 = new File("E:/"+fileName);
InputStream in = new FileInputStream(file1);
System.out.println(in.available());