黑马程序员技术交流社区

标题: 转换流相关代码 [打印本页]

作者: 追梦天涯33    时间: 2015-8-24 23:14
标题: 转换流相关代码
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();
        }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2