MP3文件的切割和合并
package cn.itcast.sequenceinputstream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class Demo2_test {
public static void main(String[] args) throws IOException {
merFile();
}
public static void merFile() throws IOException {
File dir = new File("D:\\Test\\music");
File outFile = new File("D:\\Test\\合并.mp3");
Vector<InputStream> v = new Vector<InputStream>();
File[] files = dir.listFiles();
for(File file : files) {
if(file.getName().endsWith(".mp3")) {
v.add(new FileInputStream(file));
}
}
Enumeration<InputStream> e = v.elements();
SequenceInputStream sequenceInputStream = new SequenceInputStream(e);
FileOutputStream fileOutputStream = new FileOutputStream(outFile);
int length = 0;
byte[] buf = new byte[1024];
while((length = sequenceInputStream.read(buf))!=-1) {
fileOutputStream.write(buf,0,length);
}
fileOutputStream.close();
sequenceInputStream.close();
}
public static void cutFile() throws IOException {
File file = new File("D:\\Test\\杨搏 - 遇见.mp3");
File dir = new File("D:\\Test\\music");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buf = new byte[1024*1024];
int length = 0;
for(int i=1 ; (length = fileInputStream.read(buf))!=-1 ; i++) {
FileOutputStream fileOutputStream = new FileOutputStream(new File(dir,"part"+i+".mp3"));
fileOutputStream.write(buf,0,length);
fileOutputStream.close();
}
fileInputStream.close();
}
}