IO Streams:缓冲流
生活随笔
收集整理的這篇文章主要介紹了
IO Streams:缓冲流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們迄今為止看到的大多數示例都使用無緩沖的I / O。這意味著每個讀或寫請求都由底層操作系統直接處理。這使程序效率變得很低,因為每個這樣的請求經常觸發磁盤訪問,網絡活動或一些相對昂貴的其他操作。?
為了減少這種開銷,Java平臺實現了緩沖的I / O流。緩沖輸入流從稱為緩沖區的存儲區讀取數據;僅當緩沖區為空時才調用本地輸入API。類似地,緩沖輸出流將數據寫入緩沖區,僅當緩沖區已滿時才調用本地輸出API。 程序可以使用我們已經使用過多次的包裝習慣將無緩沖流轉換為緩沖流,其中將無緩沖流對象傳遞給緩沖流類的構造函數。以下是如何使用緩沖I / O的構造函數修改CopyCharacters的示例:
inputStream = new BufferedReader(new FileReader("xanadu.txt")); outputStream = new BufferedWriter(new FileWriter("characteroutput.txt"));有四個緩沖流類用于包裝無緩沖流:BufferedInputStream和BufferedOutputStream創建緩沖字節流,而BufferedReader和BufferedWriter創建緩沖字符流。
在關鍵點寫出緩沖區通常是有意義的,而無需等待填充,這被稱為沖洗緩沖區。
?一些緩沖輸出類支持自動刷新,由可選的構造函數參數指定。啟用自動清洗時,某些關鍵事件會導致緩沖區被刷新。例如,一個自動刷新的PrintWriter對象在每次調用println或格式時刷新緩沖區。有關這些方法的更多信息,請參閱格式。 要手動刷新流,請調用其flush方法。 flush方法對任何輸出流都有效,但是除非流被緩沖,否則不起作用。
轉載于:https://www.cnblogs.com/hhx626/p/8320412.html
總結
以上是生活随笔為你收集整理的IO Streams:缓冲流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java爬取校内论坛新帖
- 下一篇: [Spark][Hive][Python