程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 詳解java IO流之緩沖流的運用

詳解java IO流之緩沖流的運用

編輯:關於JAVA

詳解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(); 
 } 
 } 

以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved