詳解java IO流之緩沖流的運用。本站提示廣大學習愛好者:(詳解java IO流之緩沖流的運用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解java IO流之緩沖流的運用正文
java緩沖流自身不具IO功用,只是在別的流上加上緩沖進步效率,像是為別的流裝上一種包裝。當對文件或其他目的頻繁讀寫或操作效率低,效能差。這時運用緩沖流可以更高效的讀寫信息。由於緩沖流先將數據緩存起來,然後一同寫入或讀取出來。所以說,緩沖流還是很重要的,在IO操作時記得加上緩沖流提升功能。
緩沖流分為字節和字符緩沖流
字節緩沖流為:
BufferedInputStream—字節輸出緩沖流
BufferedOutputStream—字節輸入緩沖流
字符緩沖流為:
BufferedReader—字符輸出緩沖流
BufferedWriter—字符輸入緩沖流
上面次要引見這四種緩沖流的運用。
一. 字節緩沖流
1.BufferedOutputStream—字節輸入緩沖流
BufferedOutputStream類完成緩沖的輸入了,經過設置這種輸入流,使用順序就可以將各個字節寫入底層輸入流中,而不用每一個字節寫入都調用底層零碎。
示例代碼:
public static void main(String[] args) {
try {
//創立字節輸入流實例
OutputStream out=new FileOutputStream("L:\\test.txt");
//依據字節輸入流構建字節緩沖流
BufferedOutputStream buf=new BufferedOutputStream(out);
String data="好好學習,天天向上";
buf.write(data.getBytes());//寫入緩沖區
buf.flush();//刷新緩沖區,即把內容寫入
//封閉流
buf.close();//封閉緩沖流時,也會刷新一次緩沖區
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2.BufferedInputStream—字節輸出緩沖流
BufferedInputStream為別的輸出流添加緩沖功用,在創立BufferedInputStream時會創立一個外部緩沖數組,用於緩沖數據,進步功能。
示例代碼:
public static void main(String[] args) {
try {
//創立字節輸出流實例
InputStream in=new FileInputStream("L:\\test.txt");
//依據字節輸出流構建字節緩沖流
BufferedInputStream buf=new BufferedInputStream(in);
byte[]bytes=new byte[1024];
//數據讀取
int len=-1;
StringBuffer sb=new StringBuffer();
while((len=buf.read(bytes))!=-1)
{
sb.append(new String(bytes,0,len));
}
System.out.println("內容為:"+sb);
//封閉流
buf.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
二. 字符緩沖流
1.BufferedWriter—字符輸入緩沖流
將文本寫入字符輸入流,緩沖各個字符,從而提供高效的寫入。可以指定緩沖區的大小,普通狀況下,默許的緩沖區大小就足夠了。
示例代碼:
public static void main(String[] args) {
try {
Writer w=new FileWriter("L:\\test.txt");
//依據字符輸入流創立字符緩沖流
BufferedWriter buf=new BufferedWriter(w);
//寫入數據
buf.write("只需功夫深鐵杵磨成針");
//刷新流
buf.flush();
//封閉流
buf.close();
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2.BufferedReader—字符輸出緩沖流
從字符輸出流中讀取信息,緩沖各個字符,從而完成高效讀取。可以指定緩沖區的大小,普通狀況下,默許的緩沖區大小就足夠了。默許大小為8192.
示例代碼:
public static void main(String[] args) {
try {
Reader r=new FileReader("L:\\test.txt");
//依據字符輸出流創立字符緩沖流
BufferedReader buf=new BufferedReader(r);
char [] data=new char[512];
//數據讀取
int len=-1;
StringBuilder sb=new StringBuilder();
while((len=buf.read(data))!=-1)
{
sb.append(new String(data,0,len));
}
System.out.println("內容是: "+sb);
//封閉流
buf.close();
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!