剛學java流技術IO編程時,一下出來這么多流,很是不敏感,不感冒,在學習了這段時間,發現好多項目中的讀寫數據,輸入輸出用到的都是以前學的最基本的,但是自己卻不是很理解其根本,今天就說幾個流中簡單但又常用的幾個知識點
Java.io包中定義了多個流類型,來實現輸入輸出功能:
- 按數據流的方向不同可以分為輸入流和輸出流。(以程序的角度來考慮)
- 如:輸入流InputStream Reader 輸出流 OutputStream Writer
- 按處理數據單位不同可以分為字節流和字符流。
- 如: 字節流 InputStream OutputStream 字符流 Reader Writer
- 按照功能不同可以分為節點流和處理流。
通俗的說節點流就是一個簡單的輸入輸出流,而處理流是“連接”在已存在的字節流或處理流之上的,通過對數據的處理為程序提供更為強大的讀寫功能。
我們最經常用到的節點流類型是有關文件處理的有FileReader FileWriter FileInputStream FileOutputStream
Ø FileInputSteam 和 FileOutputStream 類支持其父類InputStream 和OutputStream 所提供的數據讀寫方法。
Ø 注意:
§ 在實例化FileInputStream和FileOutputSteam流時要用try-catch語句以處理其可能拋出的FileNotFoundException。
§ 在讀寫數據時也要用try-catch語句以處理可能拋出的 IOException。
§ FileNotFoundException是IOException的子類
FileReader 和 FileWriter 分別繼承自Reader和Writer,FileInputSteam與FileOutputStream類似,所不同的時FileReader和FileWriter向文件輸入和輸出的數據單位為字符。
處理流中常用到的有緩沖流 、轉換流。
l 緩沖流有BufferedReader BufferedWriter BufferedInputStream BufferedOutputStream ,緩沖流要“套接”在相應的節點流之上,對讀寫的數據提供了緩沖的功能,提高了讀寫的效率,同時增加了一些新的方法
l BufferedReader提供了readLine方法用于讀取一行字符串(以"r或"n分 隔)。
l BufferedWriter提供了newLine用于寫入一個行分隔符。
l 對于輸出的緩沖流,寫出的數據會先在內存中緩存,使用flush方法將會使內存中的數據立刻寫出。
在Socket編程中接受信息時,不是直接用InputStream接收,而是把內容放入緩沖之中進行讀取 ,在Socket中的簡單應用如下


































































































轉換流InputStreamReader OutputStreamWriter 用于字節數據到字符數據之間的轉換。其中InputStreamReader 需要和InputStream”套接”,OutputStreamWriter需要和OutputStream套接
數據流DataInputStream DataOutputStream 提供了可以存取與機器無關的java原始數據類型
l Print流:PrintWriter和PrintStream都屬于輸出流,分別針對與字符和字節,PrintWriter和PrintStream提供了重載的print,Println方法用于多種數據類型的輸出。PrintWriter和PrintStream的輸出操作不會拋出異常,用戶通過檢測錯誤狀態獲取錯誤信息。PrintWriter和PrintStream有自動flush功能
l
這幾個流的類型都是在以后的學習中經常用到的。就不一一做例子啦
以后所學到的所有流類型都是繼承 InputStream OutputStream Reader Writer 這四個抽象的流類型
摘要: 我相信大多說人都對構造方法、方法不陌生,而且很了解,但我也相信有很多像我這樣的沒有一個很好很清晰很全面的認識,今天就把它整理如下,希望能給大家帶來點方便與幫助,也希望大家多多討論。 ... 閱讀全文 摘要: 今天我們用實例程序說一下java中常見的生產者與消費者的問題。 首先看一下里面線程間的通信問題: 一個線程向數據存儲空間添加數據(生產者),另一個線程從數據存儲空間去出數據(消費者)。 這個程序中有兩個可能出現的問題需要考慮: 1、 ... 閱讀全文 摘要: 項目需求:1.病人來掛號時根據自己想找的醫生掛相應的醫生的號,即加到相應醫生的病人隊列中。 2.醫生看見自己的屏幕,點擊自己的名字,得到自己相應列表的下一位病人 具體代碼如下: ... 閱讀全文
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
31 | 1 | 2 | 3 | 4 | 5 | 6 | |||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 | 1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
常用鏈接
留言簿(13)
隨筆檔案
文章檔案
搜索
最新評論

- 1.?re: java中構造方法和方法全面解析
- 為什么非要調用父類的構造方法
- --zjy
- 2.?re: java-醫院病人排隊掛號醫生叫號簡潔小系統
- 代碼不全 QueueServer 沒有
- --sss
- 3.?re: Java中thread類與Runnable接口的區別
- 受教了
- --李大明
- 4.?re: java中消費者與生產者的問題實例解析
- 樓主有沒有搞錯啊 你的最后那個截圖后面不還是亂的嗎 不是一個一個交替輸出的啊
- --aben
- 5.?re: java堆棧存取實例小講解
-
@閆佳
上面有插入代碼--呵呵--- - --迷人笑笑