1. 程式人生 > >【IO流】24 - 字節流 - 字節流的四種復制文件方式對比

【IO流】24 - 字節流 - 字節流的四種復制文件方式對比

字節數 tput 單個 exc pub exce long 四種 cast

package cn.itcast.copy;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
 *  文件復制方式,字節流,一共4個方式
 *  1. 字節流讀寫單個字節                    125250 毫秒
 *  2. 字節流讀寫字節數組                    193    毫秒  OK
 *  3. 字節流緩沖區流讀寫單個字節          1210   毫秒
 *  4. 字節流緩沖區流讀寫字節數組          73     毫秒  OK
 
*/ public class Copy { public static void main(String[] args)throws IOException { long s = System.currentTimeMillis(); copy_4(new File("c:\\q.exe"), new File("d:\\q.exe")); long e = System.currentTimeMillis(); System.out.println(e-s); } /* * 方法,實現文件復制 * 4. 字節流緩沖區流讀寫字節數組
*/ public static void copy_4(File src,File desc)throws IOException{ BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desc)); int len = 0 ; byte[] bytes = new byte[1024];
while((len = bis.read(bytes))!=-1){ bos.write(bytes,0,len); } bos.close(); bis.close(); } /* * 方法,實現文件復制 * 3. 字節流緩沖區流讀寫單個字節 */ public static void copy_3(File src,File desc)throws IOException{ BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desc)); int len = 0 ; while((len = bis.read())!=-1){ bos.write(len); } bos.close(); bis.close(); } /* * 方法,實現文件復制 * 2. 字節流讀寫字節數組 */ public static void copy_2(File src,File desc)throws IOException{ FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(desc); int len = 0 ; byte[] bytes = new byte[1024]; while((len = fis.read(bytes))!=-1){ fos.write(bytes,0,len); } fos.close(); fis.close(); } /* * 方法,實現文件復制 * 1. 字節流讀寫單個字節 */ public static void copy_1(File src,File desc)throws IOException{ FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(desc); int len = 0 ; while((len = fis.read())!=-1){ fos.write(len); } fos.close(); fis.close(); } }

【IO流】24 - 字節流 - 字節流的四種復制文件方式對比