【JAVA IO】JAVA IO 源码概述
2018-06-14 本文已影响0人
shalk
【JAVA IO】JAVA IO 源码概述
Byte Based(字节流) | 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 |
以上的图和表,是经典的JAVA IO的部分,在大量的JAVA语言入门读物都会介绍,Think in java 也专门用了一个章节介绍了JAVA IO 和 JAVA NIO;
NIO是JDK 1.4 引入,提高读写效率的库,主要围绕两个概念,channel和buffer进行操作。
NIO关系图如下:
image.png1.7之后 引入了NIO2,进一步提高了IO效率。
Netty以NIO为基础的,JAVA IO框架,提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
计划分四个部分
- JAVA Classic IO
- JAVA NIO
- JAVA NIO2
- Netty
参考
JDK源码
《Java I/O, NIO and NIO.2 》
《Think in java》