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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

/*
* 四种方式复制比较
*/
public class Test {

        public static void main(String[] args) throws IOException {

                long before = System.currentTimeMillis();
//                method();   68641
//                method2();  127
//                method3();  //415  62416(如果高效流在写出一个字节后就直接刷新,就失去了高效的意义。)
//                method4();  36
                long after = System.currentTimeMillis();
                System.out.println(after-before);
        }

        //普通流一次一个字节
        private static void method() throws IOException {
               
                //创建流对象
                FileInputStream fis = new FileInputStream("czbk.mp3");
                FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
                //复制
               
                //定义变量,存储本次读取到的字节
                int b;
                while((b=fis.read())!=-1) {
                        fos.write(b);
                }
               
                //关闭流
                fos.close();
                fis.close();
        }
       
        //普通流一次一个字节数组
        private static void method2() throws IOException  {
                //创建流对象
                FileInputStream fis = new FileInputStream("czbk.mp3");
                FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
                //复制
               
                //定义变量,存储每次读取到的数据
                byte[] bytes = new byte[1024];
                //定义变量,记录每次读取到的字节个数
                int len;
               
                while((len=fis.read(bytes))!=-1) {
                        fos.write(bytes,0,len);
                }
               
                //关闭流
                fos.close();
                fis.close();
        }

        //高效流一次一个字节
        private static void method3() throws IOException  {
                //创建流对象
                FileInputStream fis = new FileInputStream("czbk.mp3");
                FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
               
                BufferedInputStream bis = new BufferedInputStream(fis);
                BufferedOutputStream bos = new BufferedOutputStream(fos);
                //复制
                //定义变量,存储本次读取到的字节
                int b;
                while((b=bis.read())!=-1) {
                        bos.write(b);
                        bos.flush();
                }
               
                //关闭流
                bos.close();
                bis.close();
        }
       
        //高效流一次一个字节数组
        private static void method4() throws IOException  {
                //创建流对象
                FileInputStream fis = new FileInputStream("czbk.mp3");
                FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
               
                BufferedInputStream bis = new BufferedInputStream(fis);
                BufferedOutputStream bos = new BufferedOutputStream(fos);
                //定义变量,存储每次读取到的数据
                byte[] bytes = new byte[1024];
                //定义变量,记录每次读取到的字节个数
                int len;
               
                while((len=bis.read(bytes))!=-1) {
                        bos.write(bytes,0,len);
                }
               
                //关闭流
                bos.close();
                bis.close();
        }
}


2 个回复

倒序浏览
好长,不过学习了!
回复 使用道具 举报
好认真啊 。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马