一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 詳解java IO流之緩沖流的使用

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

2020-07-26 14:14濫好人 Java教程

本文主要介紹了java的IO流中的緩沖流的使用,緩沖流分為字節(jié)和字符緩沖流。分享了有關(guān)它們的實例代碼,具有一定的參考價值,下面跟著小編一起來看下吧

java緩沖流本身不具IO功能,只是在別的流上加上緩沖提高效率,像是為別的流裝上一種包裝。當(dāng)對文件或其他目標(biāo)頻繁讀寫或操作效率低,效能差。這時使用緩沖流能夠更高效的讀寫信息。因為緩沖流先將數(shù)據(jù)緩存起來,然后一起寫入或讀取出來。所以說,緩沖流還是很重要的,在IO操作時記得加上緩沖流提升性能。

緩沖流分為字節(jié)和字符緩沖流

字節(jié)緩沖流為:

BufferedInputStream—字節(jié)輸入緩沖流

BufferedOutputStream—字節(jié)輸出緩沖流

字符緩沖流為:

BufferedReader—字符輸入緩沖流

BufferedWriter—字符輸出緩沖流

下面主要介紹這四種緩沖流的使用。

 一.  字節(jié)緩沖流

1.BufferedOutputStream—字節(jié)輸出緩沖流

BufferedOutputStream類實現(xiàn)緩沖的輸出了,通過設(shè)置這種輸出流,應(yīng)用程序就可以將各個字節(jié)寫入底層輸出流中,而不必每一個字節(jié)寫入都調(diào)用底層系統(tǒng)。

示例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args) {
 try {
 //創(chuàng)建字節(jié)輸出流實例
 OutputStream out=new FileOutputStream("L:\\test.txt");
 //根據(jù)字節(jié)輸出流構(gòu)建字節(jié)緩沖流
 BufferedOutputStream buf=new BufferedOutputStream(out);
 String data="好好學(xué)習(xí),天天向上";
 buf.write(data.getBytes());//寫入緩沖區(qū)
 buf.flush();//刷新緩沖區(qū),即把內(nèi)容寫入
 //關(guān)閉流
 buf.close();//關(guān)閉緩沖流時,也會刷新一次緩沖區(qū)
 out.close();
} catch (IOException e) {
 e.printStackTrace();
}
 }

2.BufferedInputStream—字節(jié)輸入緩沖流

BufferedInputStream為別的輸入流添加緩沖功能,在創(chuàng)建BufferedInputStream時會創(chuàng)建一個內(nèi)部緩沖數(shù)組,用于緩沖數(shù)據(jù),提高性能。

示例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void main(String[] args) {
 try {
 //創(chuàng)建字節(jié)輸入流實例
 InputStream in=new FileInputStream("L:\\test.txt");
 //根據(jù)字節(jié)輸入流構(gòu)建字節(jié)緩沖流
 BufferedInputStream buf=new BufferedInputStream(in);
 byte[]bytes=new byte[1024];
 //數(shù)據(jù)讀取
 int len=-1;
 StringBuffer sb=new StringBuffer();
 while((len=buf.read(bytes))!=-1)
 {
 sb.append(new String(bytes,0,len));
 }
 System.out.println("內(nèi)容為:"+sb);
 //關(guān)閉流
 buf.close();
 in.close();
 
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

二.  字符緩沖流

1.BufferedWriter—字符輸出緩沖流

將文本寫入字符輸出流,緩沖各個字符,從而提供高效的寫入。可以指定緩沖區(qū)的大小,一般情況下,默認(rèn)的緩沖區(qū)大小就足夠了。

示例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args) {
 try {
 Writer w=new FileWriter("L:\\test.txt");
 //根據(jù)字符輸出流創(chuàng)建字符緩沖流
 BufferedWriter buf=new BufferedWriter(w);
 //寫入數(shù)據(jù)
 buf.write("只要功夫深鐵杵磨成針");
 //刷新流
 buf.flush();
 //關(guān)閉流
 buf.close();
 w.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

2.BufferedReader—字符輸入緩沖流

從字符輸入流中讀取信息,緩沖各個字符,從而實現(xiàn)高效讀取。可以指定緩沖區(qū)的大小,一般情況下,默認(rèn)的緩沖區(qū)大小就足夠了。默認(rèn)大小為8192.

示例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args) {
 try {
 Reader r=new FileReader("L:\\test.txt");
 //根據(jù)字符輸入流創(chuàng)建字符緩沖流
 BufferedReader buf=new BufferedReader(r);
 char [] data=new char[512];
 //數(shù)據(jù)讀取
 int len=-1;
 StringBuilder sb=new StringBuilder();
 while((len=buf.read(data))!=-1)
 {
 sb.append(new String(data,0,len));
 }
 System.out.println("內(nèi)容是: "+sb);
 //關(guān)閉流
 buf.close();
 r.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持服務(wù)器之家!

原文鏈接:http://www.cnblogs.com/hq233/p/6266928.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 白白国产永久免费视频 | 成年美女黄网色大观看全 | 午夜欧美精品久久久久久久久 | 国产成人夜色影视视频 | 国产一区二区三区水野朝阳 | 国产一区二区在线看 | 日韩一区二区三区四区不卡 | 日韩毛片免费在线观看 | 奇米影视888四色首页 | 深夜福利一区 | 免费二级毛片免费完整视频 | 亚洲狠狠婷婷综合久久久久网站 | 四虎精品免费视频 | 国产成人精品曰本亚洲77美色 | 日韩毛片在线 | 欧美又黄又激烈真实床戏 | 国产xx肥老妇视频奂费 | 久久精品人人做人人爽97 | 四虎影视4hutv最新地址在线 | 美女和男人差差 | 偷偷操不一样 | 美女被狂干 | 91制片厂 果冻传媒 天美传媒 | 日本妇人成熟免费观看18 | 涩涩屋在线观看 | 国产一区二区三区四区波多野结衣 | 无人在线视频高清免费观看动漫 | 村妇超级乱淫伦小说全集 | 国产一区二区三区四区波多野结衣 | 欧美粗黑巨大gay | 校花被拖到野外伦小说 | 缴情五月天 | 精品久久久久久国产 | 韩国甜性涩爱在线播放 | 美女的让男人桶爽网站 | 欧美亚洲另类综合 | 亚洲美色综合天天久久综合精品 | 99久久一区二区精品 | 夫承子液by免费阅读 | 无套暴躁白丝秘书 | 国产精品久久久久久久人人看 |