黑马程序员技术交流社区
标题:
文件切割问题
[打印本页]
作者:
兜兜转转
时间:
2013-8-14 09:38
标题:
文件切割问题
本帖最后由 兜兜转转 于 2013-8-15 08:58 编辑
今天在练习毕老师的那个文件切割例子时,当时老师没用字节缓冲流去包装FileInputStream 和FileOutputStream,
然后自己练习的时候,自己就想用字节缓冲流去包装,发现没有用,我已经加了flush(),将字节缓冲流包装拿掉就好了
。帮忙看看是啥子问题呢?
作者:
薛鹏鹏
时间:
2013-8-14 10:05
代码呢?
作者:
杨增坤
时间:
2013-8-14 10:24
请把代码贴出来!
作者:
王靖远
时间:
2013-8-14 11:22
不知道什么原因。我加了缓冲区是可以的。
package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class SplitFile {
public static void main(String[] args) throws IOException {
BufferedInputStream fis = new BufferedInputStream( new FileInputStream("1.avi"));
byte[]buf = new byte[1024*1024*5];
int len = 0;
BufferedOutputStream fos = null;
int count = 1;
while((len = fis.read(buf))!=-1){
fos = new BufferedOutputStream(new FileOutputStream((count++)+".part"));
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}
复制代码
作者:
兜兜转转
时间:
2013-8-14 11:45
<blockquote> FileInputStream fis = new FileInputStream("D:"+File.separator +"javaTest"+File.separator +"psb.jpg");
复制代码
刚发完贴,没多久发现问题所在,搞乌龙了,粗心了一把,我说怎么会多出几K,会不行呢,发现问题后,都不好意思回帖了,怕笑话。
感谢!!!
作者:
兜兜转转
时间:
2013-8-14 11:50
package com.IO_Practice;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class SpiltDemo
{
public static void main(String[] args) throws Exception
{
FileInputStream fis = new FileInputStream("D:"+File.separator +"javaTest"+File.separator +"psb.jpg");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = null;
FileOutputStream fos = null;
byte data[] = new byte[1024*10];
int length = 0;
//这里定义了一个length
int part = 1;
while( (length = bis.read(data)) != -1)
{
fos = new FileOutputStream("D:"+File.separator +"javaTest"+File.separator +(part++)+".part");
bos = new BufferedOutputStream(fos);
bos.write(data,0,data.length);
//这里写的却是data.length,都怪定义变量没原则,没回避导致,找了很久,才发现这,就是搞乌龙。
}
bis.close();
bos.close();
}
}
可能是上夜班,眼睛太酸,刚发完贴,没多久发现问题所在,搞乌龙了,粗心了一把,我说怎么会多出几K,会不行呢,发现问题后,都不好意思回帖了,怕笑话。
感谢!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2