在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:
522msEND
版权声明:本文为xubaifu1997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。