Java IO深入理解

来源:互联网 发布:免费宠物店收银软件 编辑:程序博客网 时间:2024/05/29 12:44

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52462093

1. API说明

API文档对IO包的说明

Provides for system input and output through data streams, serialization and the file system.

中文说明:通过数据流、序列化和文件系统提供系统输入和输出。除非另有说明,否则向此包的任何类或接口中的构造方法或方法传递 null 参数时,都将抛出 NullPointerException。

参考文档:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

2. IO概述

2.1 输入输出

首先从术语“输入”、“输出”开始理解,从开始学习java就会接触到I InputStream和OutputStream,输入流、输出流就是谁相对于谁输入、输出呢。我当初学习java时这块是比较困惑的。

其实理解这块内容需要找到三个对象:数据源、应用存储(内存)、目标文件,InputStream流可以理解为向内存输入,OutputStream流反之从内存输出。

比较常见的数据源及目标媒介有:文件、管道、网络连接、内存缓存等。

下面这张图描绘了一个程序从数据源读取数据,然后将数据输出到其他媒介的原理:

这里写图片描述

2.2 流

流在java里面是一个核心概念,从概念上说它是连续的数据流,既可以往流中写数据,也能从流中读数据,流与数据源或者流向媒介相关联,支持字节流和字符流。

2.3 InputStream、OutputStream、Reader、Writer

InputStream和Reader与数据源相关,是读取数据源内容至内存OutputStream和Writer与目标媒介相关,是写入内容至目标媒介。

2.4 IO相关抽象类

InputStream:此抽象类是表示字节输入流的所有类的超类。
OutputStream:此抽象类是表示输出字节流的所有类的超类。
Reader:用于读取字符流的抽象类。
Writer:写入字符流的抽象类。
FilterReader:用于读取已过滤的字符流的抽象类。
FilterWriter:用于写入已过滤的字符流的抽象类。

2.5 IO类概述表

简要说明了数据源、目标媒介、输入、输出等,接下来是一张通过输入、输出、基于字节或者字符、以及其他比如缓冲、解析之类的特定用途划分的大部分Java IO类的表格。

这里写图片描述

5 0
原创粉丝点击