博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java编程思想——java IO系统
阅读量:6832 次
发布时间:2019-06-26

本文共 1309 字,大约阅读时间需要 4 分钟。

一、什么是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 过滤流通常源和目标是其它的输入输出流,大家能够看到有众多的子类。各实用途,就不一一介绍了

转载地址:http://evtkl.baihongyu.com/

你可能感兴趣的文章
WCF 第五章 行为 事务之事务服务行为
查看>>
转:java内部类作用
查看>>
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
查看>>
SqlServer中常常搞不清楚 sp_columns来看一看
查看>>
Jmeter 分布式压力测试
查看>>
Keepalived+NFS+SHELL脚本实现NFS-HA高可用
查看>>
*Algs4-1.5.26Erdos-Renyi模型的均摊成本图像-(未读懂题)
查看>>
ftp服务器搭建(离线安装vsftpd),配置
查看>>
【纪中集训2019.3.11】Cubelia
查看>>
noip2018游记
查看>>
DAY11-MYSQL单表查询
查看>>
JSON和JSONP (含jQuery实例)(share)
查看>>
selenium自动化脚本报错总结
查看>>
A quick introduction to Source Insight for seamless development platform between Linux and Windows
查看>>
MetaMask/obs-store
查看>>
linux命令8
查看>>
创建currvar、nextvar函数
查看>>
js设置全局变量 ajax中赋值
查看>>
1147: 查找子数组
查看>>
PLSQL_海量数据处理系列2_分区
查看>>