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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
*    分享一下
* 需求:复制MP3.
* 分析:MP3是二进制数据,所以只能只用字节流。而字节流有四种方案。
*
* 方案1:基本流一次读取一个字节        42812毫秒
* 方案2:基本流一次读取一个字节数组  47毫秒
* 方案3:缓冲流一次读取一个字节          500毫秒
* 方案4:缓冲流一次读取一个字节数组  15毫秒
*
* 测试每一种功能的时间。
*/
public class CopyMP3 {
        public static void main(String[] args) throws IOException {
                long start = System.currentTimeMillis();
                //method1();
                //method2();
                //method3();
                method4();
                long end = System.currentTimeMillis();
                System.out.println((end - start) + "毫秒");
        }

        // 方式1
        public static void method1() throws IOException {
                FileInputStream fis = new FileInputStream("d:\\zxmzf.mp3");
                FileOutputStream fos = new FileOutputStream("copy1.mp3");

                int by = 0;
                while ((by = fis.read()) != -1) {
                        fos.write(by);
                }

                fos.close();
                fis.close();
        }

        // 方式2
        public static void method2() throws IOException {
                FileInputStream fis = new FileInputStream("d:\\zxmzf.mp3");
                FileOutputStream fos = new FileOutputStream("copy2.mp3");

                byte[] bys = new byte[1024];
                int len = 0;
                while ((len = fis.read(bys)) != -1) {
                        fos.write(bys, 0, len);
                }

                fos.close();
                fis.close();
        }

        // 方式3
        public static void method3() throws IOException {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                                "d:\\zxmzf.mp3"));
                BufferedOutputStream bos = new BufferedOutputStream(
                                new FileOutputStream("copy3.mp3"));

                int by = 0;
                while ((by = bis.read()) != -1) {
                        bos.write(by);
                }

                bos.close();
                bis.close();
        }

        // 方式4
        public static void method4() throws IOException {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                                "d:\\zxmzf.mp3"));
                BufferedOutputStream bos = new BufferedOutputStream(
                                new FileOutputStream("copy4.mp3"));

                byte[] bys = new byte[1024];
                int len = 0;
                while ((len = bis.read(bys)) != -1) {
                        bos.write(bys, 0, len);
                }

                bos.close();
                bis.close();
        }
}


评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马