色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Java中IO流分為幾種?

林國瑞2年前14瀏覽0評論

什么是IO

I是Input,O是Output,IO就是輸入與輸出,Java的輸入機制允許程序讀取外部數(shù)據(jù),輸出機制允許程序將程序數(shù)據(jù)輸出到外部存儲設備

IO常用類

  • 文件流:FileInputStream/FileOutputStream,F(xiàn)ileReader/FileWriter
這四個類是專門操作文件流的,用法高度相似,區(qū)別在于前面兩個是操作字節(jié)流,后面兩個是操作字符流。它們都會直接操作文件流,直接與OS底層交互。因此他們也被稱為節(jié)點流

注意使用這幾個流的對象之后,需要關閉流對象,因為java垃圾回收器不會主動回收。不過在Java7之后,可以在try()括號中打開流,最后程序會自動關閉流對象,不再需要顯示地close

  • 包裝流:PrintStream/PrintWriter/Scanner

PrintStream可以封裝(包裝)直接與文件交互的節(jié)點流對象OutputStream,使得編程人員可以忽略設備底層的差異,進行一致的IO操作。因此這種流也稱為處理流或者包裝流。

PrintWriter除了可以包裝字節(jié)流OutputStream之外,還能包裝字符流Writer

Scanner可以包裝鍵盤輸入,方便地將鍵盤輸入的內(nèi)容轉換成我們想要的數(shù)據(jù)類型

  • 字符串流:StringReader/StringWriter
這兩個操作的是專門操作String字符串的流,其中StringReader能從String中方便地讀取數(shù)據(jù)并保存到char數(shù)組,而StringWriter則將字符串類型的數(shù)據(jù)寫入到StringBuffer中
  • 轉換流:InputStreamReader/OutputStreamReader
這兩個類可以將字節(jié)流轉換成字符流,被稱為字節(jié)流與字符流之間的橋梁。我們經(jīng)常在讀取鍵盤輸入(System.in)或網(wǎng)絡通信的時候,需要使用這兩個類
  • 緩沖流:BufferedReader/BufferedWriter,BufferedInputStream/BufferedOutputStream

經(jīng)過Buffered處理過的輸入流將會從一個buffer內(nèi)存區(qū)域讀取數(shù)據(jù),本地API只會在buffer空了之后才會被調用(可能一次調用會填充很多數(shù)據(jù)進buffer)。

經(jīng)過Buffered處理過的輸出流將會把數(shù)據(jù)寫入到buffer中,本地API只會在buffer滿了之后才會被調用。