詳解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(); } }
以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!