如果是字符流的话, 你定义的缓冲数组是char类型的, char类型占用2 - 4个字节, 你改成字节流就可以解决你的问题了, 看下面的代码
import java.io.*;
class Test1 {
public static void main(String[] args) throws Exception {
//将输入流定义为字节输入流
FileInputStream fis = new FileInputStream( "D:\\11\\1.avi");
//定义一个字节缓冲数组, 你原来的字符数组每个字符可能是2个字节, 所以大于1m
byte[] buf = new byte[1024*1024];//1024*1024等于1M
int len=0;
int count=1;
while((len=fis.read(buf))!=-1){
//将输出流定义为字节输出流, 用于写出输入流的数据
FileOutputStream fos = new FileOutputStream("D:\\1\\"+(count++)+".suipian");
fos.write(buf, 0, len);
fos.close();
}
fis.close();
System.out.println("切割成功 ");
}
}
|