【Java】浅谈Java的I/O体系
生活随笔
收集整理的這篇文章主要介紹了
【Java】浅谈Java的I/O体系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 流(Stream)
- 流的分類
- java.io.*
- I/O體系的四大抽象類
- 流的分類總結表
- 流的層次結構圖
- 字節輸入流的層次結構圖
- 字節輸出流的層次結構圖
- 字符輸入流的層次結構圖
- 字符輸出流的層次結構圖
流(Stream)
流,代表的是程序中數據的流通。
數據流是一串連續不斷的數據的集合,而每一比特的數據,就如同水管(假設足夠狹窄)中串行流淌的一滴水。
在Java程序中,對于數據的 I/O 操作是以流的方式進行的。
我認為,“流”這個概念,構建起了Java整個I/O體系的框架。
在學習《程序設計基礎》的時候,我們就應該知道——I/O的數據流向和我們固有的認知相反:
輸入流:流入程序的數據
輸出流:流出程序的數據
在Java程序中,從輸入流讀取數據(讀到內存中),而從輸出流輸出數據(從內存存儲到文件或顯示到屏幕上)。
流的分類
- 按流的方向不同
- 輸入流
- 輸出流
- 按處理數據的單位不同
- 字節流
- 字符流
- 按功能不同
- 節點流
- 處理流
java.io.*
Java語言中,控制數據流的類都放在java.io包中
java.io包中有兩大繼承體系:
- 以byte處理為主的Stream類, 其命名方式是:XXXStream(XXXInputStream/XXXOutputStream)
- 以字符處理為主的Reader/Writer類,他們的命名方式是:XXXReader/XXXWriter
I/O體系的四大抽象類
InputStream、OutputStream、Reader、 Writer這四個類,是這兩大繼承體系的父類,全是抽象類。
流的分類總結表
Note:斜體表示抽象類,加粗表示節點流。
| 抽象父類 | InputStream | OutputStream | Reader | Writer |
| 訪問文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
| 訪問數組 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
| 訪問管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
| 訪問字符串 | StringReader | StringWriter | ||
| 緩沖流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
| 轉換流 | InputStreamReader | OutputStreamWriter | ||
| 對象流 | ObjectInputStream | ObjectOutputStream | ||
| 抽象父類 | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
| 打印流 | PrintStream | PrintWriter | ||
| 推回輸入流 | PushbackInputStream | PushbackReader | ||
| 特殊流 | DataInputStream | DataOutputStream |
流的層次結構圖
字節輸入流的層次結構圖
字節輸出流的層次結構圖
字符輸入流的層次結構圖
字符輸出流的層次結構圖
總結
以上是生活随笔為你收集整理的【Java】浅谈Java的I/O体系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】电路交换网络中,每条电路独
- 下一篇: 动态规划求解限时采药问题(洛谷P1048