1. 程式人生 > >JAVA IO使用高速緩衝區的位元組流複製檔案

JAVA IO使用高速緩衝區的位元組流複製檔案

好記性不如賴筆頭……

帶有高速緩衝區的字元流示例

package com.Ckinghan.outputStream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import
java.io.OutputStream; /** * * @author Ckinghan * @描述:帶有高效緩衝區的位元組流 */ public class BufferedInputStreamDemo { public static void main(String[] args) { /** * 用高效緩衝區的位元組流讀取複製檔案,複製方式:一次複製一個字元 */ bufferedInputStreamReader(); /** * 用高效緩衝區的位元組流讀取複製檔案,複製方式:一次複製指定數量的位元組 */
bufferedInputStreamCopyFile(); } /** * @描述:用高效緩衝區的位元組流讀取複製檔案,複製方式:一次複製指定數量的位元組 * @建立時間: */ public static void bufferedInputStreamCopyFile(){ //建立位元組流物件 InputStream inputStream = null; OutputStream outputStream = null; try { //例項化高效緩衝區位元組流的輸入、輸出物件
inputStream = new BufferedInputStream(new FileInputStream("E:/WebLogin.log")); outputStream = new BufferedOutputStream(new FileOutputStream("E:/new.log")); //每次讀取的檔案位元組數量 int len = -1; //每次讀取的檔案位元組資料 byte[] bs = new byte[1024]; //迴圈讀取檔案,直至讀到檔案末尾 while ((len = inputStream.read(bs)) != -1) { //寫入到檔案 outputStream.write(bs, 0, len); } //清空緩衝區,將寫入到檔案中的資料儲存 outputStream.flush(); //複製成功輸出 System.out.println("使用高效緩衝位元組流一次讀取指定數量的位元組複製檔案完畢"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { try { //關閉流 if(outputStream != null) outputStream.close(); if(inputStream != null) inputStream.close(); } catch (IOException e2) { e2.printStackTrace(); } } } /** * @描述:使用高效緩衝區的位元組流讀取複製檔案,複製方式:一次複製一個字元 * @建立時間: */ public static void bufferedInputStreamReader(){ //建立位元組流物件 InputStream inputStream = null; OutputStream outputStream = null; try { //例項化高效緩衝區位元組流的輸入、輸出物件 inputStream = new BufferedInputStream(new FileInputStream("E:/WebLogin.log")); outputStream = new BufferedOutputStream(new FileOutputStream("E:/login.log")); //讀取的位元組ACSII碼 int val = -1; //迴圈讀取檔案,直至讀到檔案末尾 while((val = inputStream.read()) != -1){ //寫入到檔案 outputStream.write(val); } //清空緩衝區,將寫入到檔案中的資料儲存 outputStream.flush(); //複製成功輸出 System.out.println("使用高效緩衝位元組流一次讀取一個位元組複製檔案完畢"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { //關閉流 if(outputStream != null) outputStream.close(); if(inputStream != null) inputStream.close(); } catch (IOException e2) { e2.printStackTrace(); } } } }