Java IO Overview

## Java IO Overview

目录


开始分析 JavaIO 的源码!不过要先弄清楚 Java IO 的体系结构。

本文参考这里,给 Java IO 包里各式各样的类做了一个 holy high 的分组。


Input and Output - Source and Destination

时刻谨记,所谓的 InputOutput 都是从内存(程序)的角度来说的。

Java 的 IO 包从 源(source) 中读取数据,写入数据到 目的(destination)。最常用的数据 sources 和 destinations 如下:

  • 文件 Files
  • 管道 Pipes
  • 网络连接 Network Connections
  • 内存缓存 (例如,数组)
  • 标准输入输出 System.in, System.out, System.error

读取和写入数据的流向图如下:

Input and Output - Source and Destination

Streams

IO Streams (流) 是 Java IO 中的概念。一个 Stream 可以认为是 数据的流动(可以把数据想象成,Stream 就是水管)。Stream 可以连接到 源数据 或者是 目标数据。Stream 可以是基于字节的(字节流,读写字节),也可以是基于字符的(字符流,读写字符)。

The InputStream, OutputStream, Reader and Writer

从 source 读取数据的程序需要使用到 InputStream 或者 Reader。往 destination 写入数据的程序需要使用到 OutputStream 或者 Writer

The InputStream, OutputStream, Reader and Writer

InputStream / Reader 连接到 源数据。OutputStream / Writer 连接到 目标数据。


Java IO Purposes and Features

Java IO 包含了很多 InputStream, OutputStream, ReaderWriter 类的子类。之所以如此,是因为这些类的作用各不相同。现总结一下 IO 类的不同作用:

  • 文件访问 File Access
  • 网络访问 Network Access
  • 内存访问 Internal Memory Buffer Access
  • 线程间通信 Inter-Thread Communication (Pipes)
  • 缓存 Buffering
  • 过滤器 Filtering
  • 解析器 Parsing
  • 读写文本 Reading and Writing Text (Readers / Writers)
  • 读写基本数据类型 Reading and Writing Primitive Data (long, int etc.)
  • 读写对象 Reading and Writing Objects

当阅读 Java IO 源码的时候,很容易就知道了这些作用,这样在实际运用的时候,针对不同的目的,就能使用不同的类了。


Java IO Class Overview Table

下表列出了 Java IO 中大部分的类,按 Input 和 Output, 字节流和字符流分组,同时也标出了这些类可能的作用。

 Byte BasedCharacter Based
InputOutputInputOutput
BasicInputStreamOutputStreamReader
InputStreamReader
Writer
OutputStreamWriter
ArraysByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
FilesFileInputStream
RandomAccessFile
FileOutputStream
RandomAccessFile
FileReaderFileWriter
PipesPipedInputStreamPipedOutputStreamPipedReaderPipedWriter
BufferingBufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
FilteringFilterInputStreamFilterOutputStreamFilterReaderFilterWriter
ParsingPushbackInputStream
StreamTokenizer
 PushbackReader
LineNumberReader
 
Strings  StringReaderStringWriter
DataDataInputStreamDataOutputStream 
Data - Formatted PrintStream PrintWriter
ObjectsObjectInputStreamObjectOutputStream  
UtilitiesSequenceInputStream
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值