成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java? 教程(緩沖流)

gougoujiang / 2332人閱讀

緩沖流

到目前為止,我們看到的大多數(shù)示例都使用無緩沖的I/O,這意味著每個(gè)讀取或?qū)懭胝埱蠖加傻讓硬僮飨到y(tǒng)直接處理,這可以使程序效率低得多,因?yàn)槊總€(gè)這樣的請求通常觸發(fā)磁盤訪問、網(wǎng)絡(luò)活動或一些相對昂貴的其他操作。

為了減少這種開銷,Java平臺實(shí)現(xiàn)了緩沖的I/O流,緩沖輸入流從稱為緩沖區(qū)的內(nèi)存區(qū)讀取數(shù)據(jù),僅當(dāng)緩沖區(qū)為空時(shí)才調(diào)用原生輸入API,類似地,緩沖輸出流將數(shù)據(jù)寫入緩沖區(qū),并且僅在緩沖區(qū)已滿時(shí)才調(diào)用原生輸出API。

程序可以使用我們現(xiàn)在多次使用的包裝習(xí)慣用法將無緩沖的流轉(zhuǎn)換為緩沖流,將無緩沖的流對象傳遞給緩沖流類的構(gòu)造函數(shù),以下是如何修改CopyCharacters示例中的構(gòu)造函數(shù)調(diào)用以使用緩沖I/O:

inputStream = new BufferedReader(new FileReader("xanadu.txt"));
outputStream = new BufferedWriter(new FileWriter("characteroutput.txt"));

有四個(gè)用于包裝無緩沖流的緩沖流類:BufferedInputStream和BufferedOutputStream創(chuàng)建緩沖的字節(jié)流,而BufferedReader和BufferedWriter創(chuàng)建緩沖的字符流。

沖洗緩沖流

在關(guān)鍵點(diǎn)寫出緩沖區(qū)通常是有意義的,而不是等待它被填滿,這稱為沖洗緩沖區(qū)。

一些緩沖的輸出類支持autoflush,由可選的構(gòu)造函數(shù)參數(shù)指定,啟用autoflush時(shí),某些關(guān)鍵事件會導(dǎo)致沖洗緩沖區(qū)。例如,自動沖洗PrintWriter對象在每次調(diào)用printlnformat時(shí)沖洗緩沖區(qū),有關(guān)這些方法的更多信息,請參閱格式化。

要手動沖洗流,請調(diào)用其flush方法,flush方法在任何輸出流上都有效,但除非流被緩沖,否則無效果。

上一篇:字符流 下一篇:掃描

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72965.html

相關(guān)文章

  • 少啰嗦!一分鐘帶你讀懂Java的NIO和經(jīng)典IO的區(qū)別

    摘要:的選擇器允許單個(gè)線程監(jiān)視多個(gè)輸入通道。一旦執(zhí)行的線程已經(jīng)超過讀取代碼中的某個(gè)數(shù)據(jù)片段,該線程就不會在數(shù)據(jù)中向后移動通常不會。 1、引言 很多初涉網(wǎng)絡(luò)編程的程序員,在研究Java NIO(即異步IO)和經(jīng)典IO(也就是常說的阻塞式IO)的API時(shí),很快就會發(fā)現(xiàn)一個(gè)問題:我什么時(shí)候應(yīng)該使用經(jīng)典IO,什么時(shí)候應(yīng)該使用NIO? 在本文中,將嘗試用簡明扼要的文字,闡明Java NIO和經(jīng)典IO之...

    Meils 評論0 收藏0
  • Java NIO 概覽

    摘要:線程之間的切換對于操作系統(tǒng)來說是昂貴的。因此,單線程可以監(jiān)視多個(gè)通道中的數(shù)據(jù)。當(dāng)方法返回后,線程可以處理這些事件。 一 NIO簡介 Java NIO 是 java 1.4 之后新出的一套IO接口,這里的的新是相對于原有標(biāo)準(zhǔn)的Java IO和Java Networking接口。NIO提供了一種完全不同的操作方式。 NIO中的N可以理解為Non-blocking,不單純是New。 它支持面...

    chemzqm 評論0 收藏0
  • Java NIO 系列教程

    摘要:異步可以讓你異步的使用,例如當(dāng)線程從通道讀取數(shù)據(jù)到緩沖區(qū)時(shí),線程還是可以進(jìn)行其他事情。當(dāng)數(shù)據(jù)被寫入到緩沖區(qū)時(shí),線程可以繼續(xù)處理它。因此,單個(gè)的線程可以監(jiān)聽多個(gè)數(shù)據(jù)通道。下面是系列文章的目錄概述通道之間的數(shù)據(jù)傳輸與原文譯者郭蕾校對方騰飛 Java NIO(New IO)是一個(gè)可以替代標(biāo)準(zhǔn)Java IO API的IO API(從Java 1.4開始),Java NIO提供了與標(biāo)準(zhǔn)IO不同的...

    fanux 評論0 收藏0
  • 動力節(jié)點(diǎn)JavaNIO教程,輕松攻破Java NIO技術(shù)壁壘

    摘要:學(xué)習(xí)和掌握技術(shù)已經(jīng)不是一個(gè)攻城獅的加分技能,而是一個(gè)必備技能。是雙向的,不僅可以讀取數(shù)據(jù)還能保存數(shù)據(jù),程序不能直接讀寫通道,只與緩沖區(qū)交互為了讓大家不被高并發(fā)與大量連接處理問題所困擾,動力節(jié)點(diǎn)推出了高效處理模型應(yīng)用教程。 大家肯定了解Java IO, 但是對于NIO一般是陌生的,而現(xiàn)在使用到NIO的場景越來越多,很多技術(shù)框...

    ralap 評論0 收藏0
  • Java NIO 之 Channel(通道)

    摘要:通道可以異步讀寫。使用的方法讀取數(shù)據(jù)創(chuàng)建一個(gè)讀數(shù)據(jù)緩沖區(qū)對象從通道中讀取數(shù)據(jù)使用的方法寫入數(shù)據(jù)創(chuàng)建一個(gè)寫數(shù)據(jù)緩沖區(qū)對象寫入數(shù)據(jù)關(guān)閉完成使用后,您必須關(guān)閉它。五提供了一種被稱為的新功能,也稱為本地矢量。功能是通道提供的并不是。 歷史回顧: Java NIO 概覽 Java NIO 之 Buffer(緩沖區(qū)) 其他高贊文章: 面試中關(guān)于Redis的問題看這篇就夠了 一文輕松搞懂redis集...

    piglei 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<