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