FileInputStream 与 BufferedInputStream 效率对比
来源:互联网 发布:三星s5选定网络不可用 编辑:程序博客网 时间:2024/06/06 03:16
FileInputStream 与 BufferedInputStream 效率对比
我的技术博客经常被流氓网站恶意爬取转载。请移步原文:http://www.cnblogs.com/hamhog/p/3550158.html ,享受整齐的排版、有效的链接、正确的代码缩进、更好的阅读体验。
【问题】
FileInputStream & FileOutputStream 和 BufferedInputStream & BufferedOutputStream 都能完成文件的读写。它们在原理上、时间效率上有什么不同,实际应用时应该如何选择呢?
【实验】
我们采用文件复制来做效率对比的实验。
在FileOperator类的copyWithFileStream方法实现了使用FileInputStream和FileOutputStream复制文件,copyWithBufferedStream方法实现了使用BufferedInputStream和BufferedOutputStream复制文件。
/*
* Copyright (c) 2014 xxx.com. All Rights Reserved.
*/
package utils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author ham.hog created on 2014 14-2-12 下午2:58
* @version 0
*/
public class FileOperator {
/** buffer size in bytes */
final static int BUFFER_SIZE = 100;
/**
* copy file using FileInputStream & FileOutputStream
* @param src copy from
* @param dest copy to
* @return;
*/
public static void copyWithFileStream(File src, File dest){
FileInputStream input = null;
FileOutputStream output = null;
try {
input = new FileInputStream(src);
output = new FileOutputStream(dest);
byte[] buffer = new byte[BUFFER_SIZE];
int copySize;
while ((copySize = input.read(buffer)) > 0){
output.write(buffer, 0, copySize);
output.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
input.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* copy file using BufferedInputStream & BufferedOutputStream
* @param src copy from file
* @param dest copy to file
* @return;
*/
public static void copyWithBufferedStream(File src, File dest){
BufferedInputStream bufferedInput = null;
BufferedOutputStream bufferedOutput = null;
try {
bufferedInput = new BufferedInputStream(new FileInputStream(src));
bufferedOutput = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buffer = new byte[BUFFER_SIZE];
int copySize;
while ((copySize = bufferedInput.read(buffer)) > 0){
bufferedOutput.write(buffer, 0, copySize);
}
- FileInputStream 与 BufferedInputStream 效率对比
- BufferedInputStream与FileInputStream的IO效率对比
- FileInputStream 与 BufferedInputStream 的区别和效率对比
- FileInputStream 与 BufferedInputStream 的区别和效率对比
- JAVA FileInputStream 与 BufferedInputStream读取效率的比较
- FileInputStream 与BufferedInputStream
- FileInputStream与BufferedInputStream、FileInputStream与FileReader区别
- FileInputStream与BufferedInputStream、FileInputStream与FileReader区别
- 总结 FileInputStream 与 FileOutputStream. BufferedInputStream 与 BufferedOutputStream
- FileInputStream AND BufferedInputStream
- FileInputStream BufferedInputStream 使用
- java IO 文件复制,BufferedInputStream与使用FileInputStream的速度差距
- FILE与IO流(FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream)的使用
- FileOutputStream和BufferedInputStream效率
- BufferedInputStream,FileInputStream,FileChannel实现文件拷贝
- IO<字节流>FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream
- 关于BufferedInputStream和FileInputStream的区别
- 关于BufferedInputStream和FileInputStream的区别
- Reverse Integer (LeetCode)
- java的一些小程序!
- 排序算法之冒泡排序 - 优化版
- MacBookPro MD103 升级内存
- 突然想聊聊公司最近的变化
- FileInputStream 与 BufferedInputStream 效率对比
- OpenERP-指定动作视图
- 第10条:始终要覆盖toString方法
- java的一些开源!
- c#生成大数据量sql文件_MySql
- 黑马程序员——wpf常用控件常用属性
- POJ 1363
- 如果我的孩子在幼儿园被喂药
- MTD