Java IO Overview

来源:互联网 发布:人工智能和制造业 编辑:程序博客网 时间:2024/05/18 01:30

## Java IO Overview

目录

    • 目录
    • Input and Output - Source and Destination
      • Streams
      • The InputStream OutputStream Reader and Writer
    • Java IO Purposes and Features
    • Java IO Class Overview Table


开始分析 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 Based Character Based Input Output Input Output Basic InputStream OutputStream Reader
InputStreamReader Writer
OutputStreamWriter 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   PushbackReader
LineNumberReader   Strings     StringReader StringWriter Data DataInputStream DataOutputStream  
Data - Formatted   PrintStream   PrintWriter Objects ObjectInputStream ObjectOutputStream     Utilities SequenceInputStream
     
0 0
原创粉丝点击