使用字节流实现媒体文件的复制
来源:互联网 发布:知乎怎么赚钱 编辑:程序博客网 时间:2024/05/18 01:15
package io.io6;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** *@description:复制媒体文件,以mp3为例 *@author:wang_bjian *@date:2015-7-19下午5:17:29 */public class CopyFileTest {private static final int BUFFER_SIZE = 1024;public static void main(String[] args) {//copy_1();//copy_2();//copy_3();copy_4();}/** * 第四种方式:-----最快 * int read(byte[] b, int off, int len) 从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 * 执行时间:1437301051607-1437301051604=3 */private static void copy_4() {FileInputStream input=null;FileOutputStream output=null;BufferedInputStream bufis=null;BufferedOutputStream bufos=null;try {input=new FileInputStream("F:\\music_baojian\\music\\白若溪-追梦人.mp3");bufis=new BufferedInputStream(input);output =new FileOutputStream("白若溪_追梦人.mp3");bufos =new BufferedOutputStream(output);byte[] bytes=new byte[BUFFER_SIZE];int len=0;System.out.println(System.currentTimeMillis());while((len=bufis.read(bytes))!=-1){bufos.write(bytes,0,len);}System.out.println(System.currentTimeMillis());} catch (Exception e) {e.printStackTrace();}finally{try {if(bufis!=null){bufis.close();}if(bufos!=null){bufos.close();}} catch (IOException e) {e.printStackTrace();}}}/** * *使用缓冲区复制文件 * int read()从此输入流中读取一个数据字节。 * 执行时间:1437300321264-1437300321204=60 */private static void copy_3() {FileInputStream input=null;FileOutputStream output=null;BufferedInputStream bufis=null;BufferedOutputStream bufos=null;try {input=new FileInputStream("F:\\music_baojian\\music\\白若溪-追梦人.mp3");bufis=new BufferedInputStream(input);output =new FileOutputStream("白若溪_追梦人.mp3");bufos =new BufferedOutputStream(output);int ch=0;System.out.println(System.currentTimeMillis());while((ch=bufis.read())!=-1){bufos.write(ch);}System.out.println(System.currentTimeMillis());} catch (Exception e) {e.printStackTrace();}finally{try {if(bufis!=null){bufis.close();}if(bufos!=null){bufos.close();}} catch (IOException e) {e.printStackTrace();}}}/** * 第二种实现方式: * int read() 从此输入流中读取一个数据字节。 * 千万不能用,效率非常低 * 执行时间:1437300470937-1437300464748=6189 */private static void copy_2() {FileInputStream input=null;FileOutputStream output=null;try {input=new FileInputStream("F:\\music_baojian\\music\\白若溪-追梦人.mp3");output =new FileOutputStream("白若溪_追梦人.mp3");int ch=0;System.out.println(System.currentTimeMillis());while((ch=input.read())!=-1){output.write(ch);}System.out.println(System.currentTimeMillis());} catch (Exception e) {e.printStackTrace();}finally{try {if(input!=null){input.close();}if(output!=null){output.close();}} catch (IOException e) {e.printStackTrace();}}}/** * 第一种实现方式: * read(byte[] b, int off, int len): * 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。 * 执行时间:1437300734527-1437300734516=11 */private static void copy_1() {FileInputStream input=null;FileOutputStream output=null;try {input=new FileInputStream("F:\\music_baojian\\music\\白若溪-追梦人.mp3");output =new FileOutputStream("白若溪_追梦人.mp3");byte[] bytes=new byte[BUFFER_SIZE];int len=0;System.out.println(System.currentTimeMillis());while((len=input.read(bytes))!=-1){output.write(bytes, 0, len);}System.out.println(System.currentTimeMillis());} catch (Exception e) {e.printStackTrace();}finally{try {if(input!=null){input.close();}if(output!=null){output.close();}} catch (IOException e) {e.printStackTrace();}}}}
0 0
- 使用字节流实现媒体文件的复制
- io字节流复制媒体文件
- 字节流操作媒体文件
- 使用字节流的方式实现文件的复制
- 黑马程序员——【Java】IO——字节流:复制媒体文件
- 字节流实现文件复制
- 基于字节流和字符流实现的文件复制
- 运用字节流实现txt文件的复制
- 字节输入输出流之实现图片文件的复制
- java中使用字节流的方式复制文件
- 使用字节流对一个指定的图片进行复制
- JAVA IO使用高速缓冲区的字节流复制文件
- 文件字节流的复制
- 字节流的复制文件
- 将指定的文件复制到指定的位置{使用字符流和字节流分别实现}
- java字节流实现文件复制
- 使用字节流复制一个文件夹
- 【Java】使用字节流复制文件
- android截图
- JavaBean-Servlet-JavaServerPage(转)
- 这些天的想法
- 关于python的输出格式控制和函数format
- 【转】找工作冲刺阶段计划安排
- 使用字节流实现媒体文件的复制
- 判断图是否是二分图
- 类和结构体
- Android开发笔记-----搭建Android开发环境
- 文字数值转换工具
- 任务、进程和线程
- Android开源项目:贴纸标签相机,快给你的图片贴上贴纸打上标签吧!~
- node.js乱码
- golang标准库的学习