【JAVA IO】JAVA IO 源碼概述
Byte Based(字節(jié)流) | Character Based(字符流) | |||
---|---|---|---|---|
目的 | Input | Output | Input | Output |
Basic | InputStream | OutputStream | ReaderInputStreamReader | WriterOutputStreamWriter |
Arrays | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
Files | FileInputStream,RandomAccessFile | FileOutputStream,RandomAccessFile | FileReader | FileWriter |
Pipes | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
Buffering | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
Filtering | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
Parsing | PushbackInputStream,StreamTokenizer | PushbackReaderLineNumberReader | ||
Strings | StringReader | StringWriter | ||
Data | DataInputStream | DataOutputStream | ||
Data - Formatted | PrintStream | PrintWriter | ||
Objects | ObjectInputStream | ObjectOutputStream | ||
Utilities | SequenceInputStream |
以上的圖和表,是經(jīng)典的JAVA IO的部分蔫慧,在大量的JAVA語言入門讀物都會(huì)介紹,Think in java 也專門用了一個(gè)章節(jié)介紹了JAVA IO 和 JAVA NIO权薯;
NIO是JDK 1.4 引入姑躲,提高讀寫效率的庫,主要圍繞兩個(gè)概念盟蚣,channel和buffer進(jìn)行操作黍析。
NIO關(guān)系圖如下:
1.7之后 引入了NIO2,進(jìn)一步提高了IO效率屎开。
Netty以NIO為基礎(chǔ)的阐枣,JAVA IO框架,提供異步的、事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用程序框架和工具蔼两,用以快速開發(fā)高性能甩鳄、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。
計(jì)劃分四個(gè)部分
- JAVA Classic IO
- JAVA NIO
- JAVA NIO2
- Netty
參考
JDK源碼
《Java I/O, NIO and NIO.2 》
《Think in java》