本帖最后由 esirong 于 2012-12-27 13:51 编辑
我依着教材做一个分割文件的方法。
我发现我切割出的文件总容量大于原文件。
fos.write(buffer,0,len);//
fos.write(buffer); //这个。
这个会让我的文件大小不能完全一致。我想,我的缓冲没有那么多内容,总容量又怎么会大于原先的文件?
但是我这样写运行也没有问题,拷贝后MP3能正常播放,而且大小也和源文件一模一样,我想知道为什么会这样
代码:- public static void cut(File file,int SIZE) throws IOException{
- /*
- * 1.创建文件输入流。输出流
- * 2.根据分割常量,定义一个缓冲大小。
- * 3.将文件读入缓冲流。读満即输出到输出流。直到文件尾。
- *
- */
- //定义一个目录
- File parent = new File("part");
- if(!parent.exists()){
- parent.mkdirs();
- }
- FileInputStream fis = new FileInputStream(file);
- FileOutputStream fos = null;
- byte[] buffer = new byte[SIZE];
- int len = 0;
- int count = 1;
- while((len=fis.read(buffer)) != -1){
- fos = new FileOutputStream(new File(parent,count+".part"));
- <font color="Red">fos.write(buffer,0,len);</font>//<font color="Red">fos.write(buffer);</font> 看这里。
- count++;
- }
- fos.close();
- fis.close();
-
- }
- }
复制代码 |
|