A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小穿钉 高级黑马   /  2015-11-3 17:44  /  394 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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流的学习有进展,给自己赞一个

5 个回复

倒序浏览
不错/。。加油
回复 使用道具 举报
加油,学习了
回复 使用道具 举报
孤单背影 来自手机 中级黑马 2015-11-3 21:21:25
板凳
多层文件夹的来一套就可以了
回复 使用道具 举报
嗯。。。。不错
回复 使用道具 举报
总结的很好,今天刚在学习IO
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马