-
1 # 我是小王的王
-
2 # 碼行天下什麼是IOI是Input,O是Output,IO就是輸入與輸出,Java的輸入機制允許程式讀取外部資料,輸出機制允許程式將程式資料輸出到外部儲存裝置IO常用類檔案流:FileInputStream/FileOutputStream, FileReader/FileWriter這四個類是專門操作檔案流的,用法高度相似,區別在於前面兩個是操作位元組流,後面兩個是操作字元流。它們都會直接操作檔案流,直接與OS底層互動。因此他們也被稱為節點流。
注意使用這幾個流的物件之後,需要關閉流物件,因為java垃圾回收器不會主動回收。不過在Java7之後,可以在 try() 括號中開啟流,最後程式會自動關閉流物件,不再需要顯示地close
包裝流:PrintStream/PrintWriter/ScannerPrintStream可以封裝(包裝)直接與檔案互動的節點流物件OutputStream, 使得程式設計人員可以忽略裝置底層的差異,進行一致的IO操作。因此這種流也稱為處理流或者包裝流。
PrintWriter除了可以包裝位元組流OutputStream之外,還能包裝字元流Writer
Scanner可以包裝鍵盤輸入,方便地將鍵盤輸入的內容轉換成我們想要的資料型別
字串流:StringReader/StringWriter這兩個操作的是專門操作String字串的流,其中StringReader能從String中方便地讀取資料並儲存到char陣列,而StringWriter則將字串型別的資料寫入到StringBuffer中轉換流:InputStreamReader/OutputStreamReader這兩個類可以將位元組流轉換成字元流,被稱為位元組流與字元流之間的橋樑。我們經常在讀取鍵盤輸入(System.in)或網路通訊的時候,需要使用這兩個類緩衝流:BufferedReader/BufferedWriter , BufferedInputStream/BufferedOutputStream經過Buffered處理過的輸入流將會從一個buffer記憶體區域讀取資料,本地API只會在buffer空了之後才會被呼叫(可能一次呼叫會填充很多資料進buffer)。
經過Buffered處理過的輸出流將會把資料寫入到buffer中,本地API只會在buffer滿了之後才會被呼叫。
-
3 # 曉林之家
.按照流的流向分,可以分為輸入流和輸出流;
•按照操作單元劃分,可以劃分為位元組流和字元流;
•按照流的角色劃分為節點流和處理流。
Java Io流共涉及40多個類,這些類看上去很雜亂,但實際上很有規則,而且彼此之間存在非常緊密的聯絡, Java I0流的40多個類都是從如下4個抽象類基類中派生出來的。
-
4 # 農非農
Java語言定義了許多類專門負責各種方式的輸入或者輸出,根據資料流向的不同分為輸入流和輸出流,根據處理資料型別的不同分為字元流和位元組流。這些類都被放在java.io包中。
a、所有輸入流類都是抽象類InputStream(位元組輸入流)或者抽象類Reader(字元輸入流)的子類。
b、所有輸出流都是抽象類OutputStream(位元組輸出流)或者Writer(字元輸出流)的子類。
InputStream類是位元組輸入流的抽象類,是所有位元組輸入流的父類,InputStream類具有層次結構如下圖所示;
位元組輸入流
java中的字元是Unicode編碼的,是雙位元組的。InputStream是用來處理位元組的,在處理字元文字時很不方便。Java為字元文字的輸入提供了專門的一套類Reader。Reader類是字元輸入流的抽象類,所有字元輸入流的實現都是它的子類。
字元輸入流
輸出流OutputStream類是位元組輸入流的抽象類,此抽象類表示輸出位元組流的所有類的超類。
位元組輸出流
Writer類是字元輸出流的抽象類,所有字元輸出類的實現都是它的子類。
字元輸出流
-
5 # loveVlog
按照流的流向分,可以分為輸入流和輸出流;按照操作單元劃分,可以劃分為位元組流和字元流;按照流的角色劃分為節點流和處理流。
Java Io流共涉及40多個類,這些類看上去很雜亂,但實際上很有規則,而且彼此之間存在非常緊密的聯絡, Java I0流的40多個類都是從如下4個抽象類基類中派生出來的。
InputStream/Reader: 所有的輸入流的基類,前者是位元組輸入流,後者是字元輸入流。OutputStream/Writer: 所有輸出流的基類,前者是位元組輸出流,後者是字元輸出流。按操作方式分類結構圖:
-
6 # 兩天半米
這種問題不建議在這裡問,或者在這裡找答案。
隨便拿一本JAVA基礎方面的書,都會把流說的明明白白
-
7 # 仲小九929
按照流的流向分,可以分為輸入流和輸出流;按照操作單元劃分,可以劃分為位元組流和字元流;按照流的角色劃分為節點流和處理流。
回覆列表
流的概述:
在java中,將不同的輸入輸出源透過流的形式進行相關操作(輸入,輸出),流是一種抽象描述,在程式中表示資料的一種轉移方式Jdk提供了各種不同的流用於處理不同的輸入輸出源,根據流性質劃分分為以下型別:
按流向分(站在程式角度考慮)
輸入流(input)
輸出流(output)
按型別分:
位元組流(InputStream/OutputStream)
任何檔案都可以透過位元組流進行傳輸。
字元流(Reader/Writer)
非純文字檔案,不能用字元流,會導致檔案 格式破壞,不能正常執行。
節點流(低階流:直接跟輸入輸出源對接)
FileInputStream/FileOutputStream/FileReader/FileWriter/PrintStream/PrintWriter.
處理流(高階流:建立在低階流的基礎上)
轉換流:InputStreamReader/OutputStreamWriter,位元組流轉字元流/字元流轉位元組流
緩衝流:BufferedInputStream/BufferedOutputStream BufferedReader/BufferedReader可對節點流經行包裝,使讀寫更快