package cn.com.bytestream;
/**
* 运用字节流方法复制MP3文件的四种方法,比较效率。
*/
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 CopyMp3Test {
public static void main(String[] args) throws IOException {
//copy_1();自定义数组缓冲区
//copy_2();应用已有的BufferedInputStream和BufferedOutputStreams
//copy_3();不建议使用available()方法
copy_4();//单字节复制,千万别用,会慢的要命
}
public static void copy_4() throws IOException {
// 创建一个字节输入流对象,并与源文件相关联
FileInputStream fis=new FileInputStream("c:\\金海心-悲伤的秋千.mp3");
// 创建一个字节输出流对象,并明确目的地
FileOutputStream fos=new FileOutputStream("c:\\非常好听的歌曲4.mp3");
int ch=0;
while((ch=fis.read())!=-1){
fos.write(ch);
}
fis.close();
fos.close();
}
public static void copy_3() throws IOException {
// 创建一个字节输入流对象,并与源文件相关联
FileInputStream fis=new FileInputStream("c:\\金海心-悲伤的秋千.mp3");
// 创建一个字节输出流对象,并明确目的地
FileOutputStream fos=new FileOutputStream("c:\\非常好听的歌曲3.mp3");
byte[] buf=new byte[fis.available()];
fos.write(buf);
fis.close();
fos.close();
}
public static void copy_2() throws IOException {
// 创建一个字节输入流对象,并与源文件相关联
FileInputStream fis=new FileInputStream("c:\\金海心-悲伤的秋千.mp3");
// 创建一个字节输入流缓冲区对象,并与被缓冲的流相关联
BufferedInputStream bufis=new BufferedInputStream(fis);
// 创建一个字节输出流对象,并明确目的地
FileOutputStream fos=new FileOutputStream("c:\\非常好听的歌曲2.mp3");
// 创建一个字节输出流缓冲区对象,并与被缓冲的流相关联
BufferedOutputStream bufos =new BufferedOutputStream(fos);
int ch=0;
while((ch=bufis.read())!=-1){
bufos.write(ch);
// bufos.flush();刷的话,会很慢的,这里不用
}
bufis.close();
bufos.close();
}
public static void copy_1() throws IOException {
FileInputStream fis=new FileInputStream("c:\\金海心-悲伤的秋千.mp3");
FileOutputStream fos=new FileOutputStream("c:\\非常好听的歌曲.mp3");
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
fis.close();
}
}
累死宝宝了,不过IO流的学习有进展,给自己赞一个
|
|