JAVA IO使用高速緩衝區的位元組流複製檔案
阿新 • • 發佈:2019-01-10
好記性不如賴筆頭……
帶有高速緩衝區的字元流示例
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();
}
}
}
}