import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
/*
把一首MP3切割成六份,每份1M。最后那份就是剩下的。再把它们合并。要保证合并后还能播放。
*/
public class Mp3QieGe {
public static void main(String[] args) throws IOException {
cutFile();//切文件成功,但是播放不了?
// mergeFile();//合并成功。但是0字节?
}
//合并文件
public static void mergeFile() throws IOException{
File file =new File("E:\\aa");
File[] files =file.listFiles();//取出该文件夹 所有文件
//创建一个Vector集合
Vector<FileInputStream> vector =new Vector<FileInputStream>();
//把所有的MP3存到vector集合中
for(File temp:files){
if(temp.getName().endsWith(".mp3")){
vector.add(new FileInputStream(temp));
}
}
Enumeration<FileInputStream> it =vector.elements();
SequenceInputStream sequenceInputStream =new SequenceInputStream(it);
File outFile =new File("E:\\梦里水乡.mp3");
FileOutputStream fileOutputStream =new FileOutputStream(outFile);
//边读边写
byte[] buf =new byte[1024];
int length =0 ;
while((length =sequenceInputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length);
}
//关闭资源
fileOutputStream.close();
}
//切割文件
public static void cutFile() throws IOException{
File file =new File("E:\\1.mp3");//找到目录 文件
FileInputStream fileInputStream =new FileInputStream(file);
byte[] buf=new byte[1024*1024];//1M
int length =0;
for (int i = 0; i < 4; i++) {
File file2 =new File("E:\\aa\\a"+i+"mp3");
FileOutputStream fileOutputStream =new FileOutputStream(file2);//每次读1M存到这个目录
length =fileInputStream.read(buf);//每次读1M存到buf
//写完。
fileOutputStream.write(buf,0,length);
//关闭资源
fileOutputStream.close();
}
fileInputStream.close();
}
}
|
|