JAVA-IO之读取媒体文件(图片、音频、视频)


在JAVA中使用字节流处理媒体文件。

关键词:

  • FileInputStream
  • FileOutputStream
  • BufferedInputStream
  • BufferedOutputStream

下面代码演示复制一个视频,图片,音频同理

import java.io.*;
public class CopyMedia {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        bufCopyMedia("OOXX.avi");
        long end = System.currentTimeMillis();
        System.out.println("使用BufferedOutputStream:");
        System.out.println((end - start) + "ms");

        start = System.currentTimeMillis();
        copyMedia("OOXX.avi");
        end = System.currentTimeMillis();
        System.out.println("没有使用BufferedOutputStream:");
        System.out.println((end - start) + "ms");
    }
    public static void copyMedia(String fileName) {
        try {
            FileInputStream fis = new FileInputStream(fileName);
            FileOutputStream fos = new FileOutputStream("copy_f" + fileName);
            byte[] buf = new byte[1024];
            int len;
            while ((len = fis.read(buf)) != -1)  {
                fos.write(buf, 0, len);
            }
            fos.close();
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void bufCopyMedia(String fileName) {
        try {
            BufferedInputStream bfis = new BufferedInputStream(new FileInputStream(fileName));
            BufferedOutputStream bfos = new BufferedOutputStream(new FileOutputStream("copy_t" + fileName));
            int by;
            byte[] ts = new byte[1024];
            while ((by = bfis.read(ts)) != -1) {
                bfos.write(ts, 0, by);
            }
            bfis.close();
            bfos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

#结果

使用BufferedOutputStream:
231ms
没有使用BufferedOutputStream:
522ms

END


版权声明:本文为xubaifu1997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。