码迷,mamicode.com
首页 > 编程语言 > 详细

java编程思想——java IO系统

时间:2015-07-12 17:35:54      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

一、什么是IO

io在本质上是单个字节的移动,而流可以说是字节移动的载体和方式,它不停的向目标处移动数据,我们要做的就是根据流的方向从流中读取数据或者向流中写入数据。


二、java中支持IO操作的库类

1、按照数据类型分为两类:

(1)字节类型:InputStream和OutputStream

(2)字符类型:Writer和Reader

2、按照数据的流动方向,主要分为两类:

(1)基于磁盘操作的io接口:File

  (2)基于网络的io接口:socket

三、字节流、字符流的io接口说明

  字节流包括输入流InputStream和输出流OutputStream。字符流包括输入流Reader,

    InputStream相关类图如下,只列举了一级子类:

    技术分享

    InputStream提供了一些read方法供子类继承,用来读取字节。

    OutputStream相关类图如下:

    技术分享

    OutputStream提供了一些write方法供子类继承,用来写入字节。

    Reader相关类图如下:

    技术分享

    Reader提供了一些read方法供子类继承,用来读取字符。

    Writer相关类图如下:

    技术分享

    Writer提供了一些write方法供子类继承,用来写入字符。

    每个字符流子类几乎都会有一个相对应的字节流子类,两者功能一样,差别只是在于操作的是字节还是字符。例如CharArrayReader和 ByteArrayInputStream,两者都是在内存中建立数组缓冲区作为输入流,不同的只是前者数组用来存放字符,每次从数组中读取一个字符;后者则是针对字节。

ByteArrayInputStream、CharArrayReader 为多线程的通信提供缓冲区操作功能。常用于读取网络中的定长数据包
ByteArrayOutputStream、CharArrayWriter 为多线程的通信提供缓冲区操作功能。常用于接收足够长度的数据后进行一次性写入
FileInputStream、FileReader 把文件写入内存作为输入流,实现对文件的读取操作
FileOutputStream、FileWriter 把内存中的数据作为输出流写入文件,实现对文件的写操作
StringReader 读取String的内容作为输入流
StringWriter 将数据写入一个String
SequenceInputStream 将多个输入流中的数据合并为一个数据流
PipedInputStream、PipedReader、PipedOutputStream、PipedWriter 管道流,主要用于2个线程之间传递数据
ObjectInputStream 读取对象数据作为输入流,对象中的 transient 和 static 类型的成员变量不会被读取或写入
ObjectOutputStream 将数据写入对象
FilterInputStream、FilterOutputStream、FilterReader、FilterWriter 过滤流通常源和目标是其他的输入输出流,大家可以看到有众多的子类,各有用途,就不一一介绍了

版权声明:本文为博主原创文章,未经博主允许不得转载。

java编程思想——java IO系统

标签:

原文地址:http://blog.csdn.net/a879365197/article/details/46850401

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!