Java IO Overview

原创 2016年08月30日 19:54:37

## 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 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
     
版权声明:本文为博主原创文章,未经博主允许不得转载。

javadoc总结

思考了一晚上,写下总结,在此之前,需要读者读过《java核心技术 基础篇(第8版)》,在pdf版本150的页,如果你没有这本书,可以从这里下载,这是我的网盘百度云 其实虽然书中提到了很多知识点,不过...
  • xiangyong882000
  • xiangyong882000
  • 2015年01月07日 14:52
  • 332

Eclipse中Tomcat overview设置

1.在Eclipse Servers面板 双击你的tomcat服务器 2.弹出如下界面,按照如此设置: Publishing 这里一定要选择 Never publish automatically...
  • RobertTony_Java
  • RobertTony_Java
  • 2016年05月09日 19:50
  • 3934

Tomcat的overview界面浅析

Server Locations配置有三个选项: 1. Use workspace metadata (does not modify Tomcat installation);2. Use...
  • zsp151296
  • zsp151296
  • 2017年05月11日 17:17
  • 1085

PSAC中的overview与summary——DO-178B/ED-12B学习笔记之十二

理解PSAC中overview与summary的差异.
  • logiciel
  • logiciel
  • 2011年04月06日 17:39
  • 1929

Android 5.0 Overview Screen--总览画面

总览画面--overview screen,通常也指最近画面,最近任务表,或者是最近app,它是一个显示最近使用的activitys和tasks的系统级UI。用户可以通过它进行应用导航,或者是选择一个...
  • llp1992
  • llp1992
  • 2015年01月25日 21:51
  • 5437

iOS:Xcode Overview1 && 界面 操作

--参考:https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/...
  • houseq
  • houseq
  • 2014年04月09日 11:49
  • 1395

java重载 overloaded

java方法的重载。 1.在同一个类中,方法在同一个类中。 2.方法名一样,同一个类中有多个方法名称一致的方法。 3.方法的参数类型、参数个数不一样,参数顺序不一样。 4.方法重载与方法的返回...
  • yinzheyihaoC
  • yinzheyihaoC
  • 2014年02月28日 08:41
  • 808

Tomcat Overview

Tomcat是符合JavaEE标准的最小的Web容器Tomcat主目录bin - 可执行文件 conf - 配置文件 lib - 类库 logs - 日志文件 webapps - Web应用程...
  • funeko
  • funeko
  • 2016年04月09日 06:45
  • 177

ASP.NET Overview

ASP.NET Overview  译:ASP.NET概述 ASP.NET is a unified Web development model that includes the services...
  • xutingzhou
  • xutingzhou
  • 2012年09月05日 15:47
  • 1767

Maven - Overview

What is Maven?Maven is a project management and comprehension tool. Maven provides developers a comp...
  • ccssddnnbbookkee
  • ccssddnnbbookkee
  • 2015年05月15日 12:53
  • 395
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java IO Overview
举报原因:
原因补充:

(最多只允许输入30个字)