一、緩沖流概要
??java緩沖流本身不具IO功能烟很,只是在別的流上加上緩沖提高效率亲桦,像是為別的流裝上一種包裝届腐。當對文件或其他目標頻繁讀寫或操作效率低袒餐,效能差嗡呼。這時使用緩沖流能夠更高效的讀寫信息华嘹。因為緩沖流先將數(shù)據(jù)緩存起來场仲,然后一起寫入或讀取出來间涵。所以說仁热,緩沖流還是很重要的,在IO操作時記得加上緩沖流提升性能勾哩。
二抗蠢、緩沖字符輸入流與緩沖字符輸出流
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class BufferedReaderAndBufferedWriter {
public static void main(String[] args){
BufferedReaderAndBufferedWriter bufferedReaderAndBufferedWriter=new BufferedReaderAndBufferedWriter();
bufferedReaderAndBufferedWriter.bufferedReaderExample();
bufferedReaderAndBufferedWriter.bufferedWriterExample();
}
public void bufferedReaderExample(){
//D盤下放入一個txt文檔命名為hello
File f=new File("D:"+File.separator+"hello.txt");
FileReader fileReader=null;
BufferedReader bufferedReader=null;
try {
fileReader=new FileReader(f);
//將原始流包裝進入緩沖流
bufferedReader=new BufferedReader(fileReader);
char [] data=new char[2048];
bufferedReader.read(data);
System.out.println(new String(data));
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉流
try {
fileReader.close();
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void bufferedWriterExample(){
//D盤下放入一個txt文檔命名為hello
File f=new File("D:"+File.separator+"hello.txt");
Writer writer=null;
BufferedWriter bufferedWriter =null;
try {
writer=new FileWriter(f,true);
//將原始流包裝進入緩沖流
bufferedWriter =new BufferedWriter(writer);
bufferedWriter.write("寫入緩沖流!");
//記得刷新,否則會報錯
bufferedWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉流
try {
writer.close();
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
三思劳、緩沖字節(jié)輸入流與緩沖字節(jié)輸出流
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class BufInputAndBufOutput {
public static void main(String[] agrs){
BufInputAndBufOutput bufInputAndBufOutput=new BufInputAndBufOutput();
bufInputAndBufOutput.bufInputExample();
bufInputAndBufOutput.bufOutputExample();
}
public void bufInputExample(){
//D盤下放入一個txt文檔命名為hello
File f=new File("D:"+File.separator+"hello.txt");
InputStream input=null;
BufferedInputStream bufInput=null;
try {
input=new FileInputStream(f);
//將原始流包裝進入緩沖流
bufInput=new BufferedInputStream(input);
byte [] data=new byte[2048];
bufInput.read(data);
System.out.println(new String(data));
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉流
try {
input.close();
bufInput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void bufOutputExample(){
//D盤下放入一個txt文檔命名為hello
File f=new File("D:"+File.separator+"hello.txt");
OutputStream output=null;
BufferedOutputStream bufOutput =null;
try {
output=new FileOutputStream(f,true);
//將原始流包裝進入緩沖流
bufOutput =new BufferedOutputStream(output);
bufOutput.write("寫入緩沖流!".getBytes());
//記得刷新迅矛,否則會報錯
bufOutput.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉流
try {
output.close();
bufOutput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}