-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
第一篇 IO字节流复制文件的方式
今天是2015年11月9日,学习了IO流技术,学习了4种复制文件的方式。他们分别是:
1 基本字节流一次读写一个字节.
2 基本字节流一次读写一个字节数组。
3 高效字节流一次读写一个字节。
4 高效字节流一次读写一个字节数组。
那哪一种的效率会高一些呢?我们来做个对比,仔细观察哪种运行所需的时间最短。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 需求:把e:\\大秦帝国.mp4复制到当前项目目录下的大秦帝国(2).mp4中
*
* 字节流四种方式复制文件:
* 基本字节流一次读写一个字节: * 基本字节流一次读写一个字节数组:
* 高效字节流一次读写一个字节: * 高效字节流一次读写一个字节数组: */
public class CopyMp4Demo {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
//下面把每一种方式都写成方法,方便以后使用。
method1("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method2("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method3("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method4("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
//这里加入一个获取当前的时间,是为了计算我这种方式的程序运行时间,用来对比这四种哪种更快
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");
}
// 高效字节流一次读写一个字节数组:
public static void method4(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
// 高效字节流一次读写一个字节:
public static void method3(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString));
int by = 0;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bos.close();
bis.close();
}
// 基本字节流一次读写一个字节数组
public static void method2(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
fos.close();
fis.close();
}
// 基本字节流一次读写一个字节
public static void method1(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString);
int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fos.close();
fis.close();
}
}
总结:经过四种复制文件的方式的运行时间对比比较得出:
1 高效字节流要比基本字节流要快。
2 一次读取一个数组又比一次读取一个字节要快。
3 采用高效字节流每次获取一个字节数组的方式,效率最高。
4 另外要注意的地方,一定记得fos.close()和fis.close(),要及时的释放系统资源,但是我却好几次都忘记了。
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
第一篇 IO字节流复制文件的方式
今天是2015年11月9日,学习了IO流技术,学习了4种复制文件的方式。他们分别是:
1 基本字节流一次读写一个字节.
2 基本字节流一次读写一个字节数组。
3 高效字节流一次读写一个字节。
4 高效字节流一次读写一个字节数组。
那哪一种的效率会高一些呢?我们来做个对比,仔细观察哪种运行所需的时间最短。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 需求:把e:\\大秦帝国.mp4复制到当前项目目录下的大秦帝国(2).mp4中
*
* 字节流四种方式复制文件:
* 基本字节流一次读写一个字节: * 基本字节流一次读写一个字节数组:
* 高效字节流一次读写一个字节: * 高效字节流一次读写一个字节数组: */
public class CopyMp4Demo {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
//下面把每一种方式都写成方法,方便以后使用。
method1("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method2("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method3("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
method4("e:\\ 大秦帝国.mp4", "大秦帝国(2).mp4");
//这里加入一个获取当前的时间,是为了计算我这种方式的程序运行时间,用来对比这四种哪种更快
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");
}
// 高效字节流一次读写一个字节数组:
public static void method4(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
// 高效字节流一次读写一个字节:
public static void method3(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString));
int by = 0;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bos.close();
bis.close();
}
// 基本字节流一次读写一个字节数组
public static void method2(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
fos.close();
fis.close();
}
// 基本字节流一次读写一个字节
public static void method1(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString);
int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fos.close();
fis.close();
}
}
总结:经过四种复制文件的方式的运行时间对比比较得出:
1 高效字节流要比基本字节流要快。
2 一次读取一个数组又比一次读取一个字节要快。
3 采用高效字节流每次获取一个字节数组的方式,效率最高。
4 另外要注意的地方,一定记得fos.close()和fis.close(),要及时的释放系统资源,但是我却好几次都忘记了。
来源:https://www.cnblogs.com/juice-cy-wang/p/4981206.html