IO流总结

一、IO简介

1.输入输出(Input/Output)。程序与外界进行数据交换的管道

输入指的是:可以让程序从外部系统获得数据(核心含义是‘读’,读取外部数据)。

常见的应用:

读取硬盘上的文件内容到程序。例如:播放器打开一个视频文件,word打开一个doc文件

读取网络上某个位置内容到程序。例如:浏览器中输入网址后,打开该网址对应的网页内容,下载网络上某个网址的文件。

输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是‘写’,将数据写出到外部系统)

常见的应用:

将数据写到硬盘中。例如:我们编写万一个word文档后,将内容写到硬盘进行保存。

将数据写到数据库系统中。例如:我们注册一个网址会员,实际就是后台程序向数据库写入一条记录。

2.Java中四大IO抽象类

字节流:InputStream/OutputStream 数据的单位为字节8bit int read():读取一个字节的数据,并将字节的值作为int类型返回(0~255),如果未读出字节则返回-1

字符流:Reader/Writer 数据单位为字符 int read() 读取一个字符的数据,并将字符的值作为int类型返回(0~65535)

3.Java中流的分类:

按流的方向分类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)

按处理的数据单元分类:

字节流:命名上以Stream结尾的一般是字节流,如(FileInputStream、FileOutputStream)

字符流:命名上以Reader/Writer结尾的一般是字符流,如(FileReader、FileWriter)

按处理对象不同分类:

节点流:

可以直接从数据源或目的地读写数据,如FileInputStream、FileOutputStream、FileReader、FileWirter、DataInputStream、DataOutputStream

处理流:

不直接连接到数据源或目的地,通过对其他流的处理提高程序的性能,如BufferInputStream、BufferedReader等,处理流也叫作包装流。

4.Java中IO流类的体系

 
① InputStream/OutputStream 

字节流的抽象类。

② Reader/Writer

字符流的抽象类。
③ FilelnputStream/FileOutputStream

节点流:以字节为单位直接操作“文件”。

④ ByteArraylnputStream/ByteArrayOutputStream

节点流:以字节为单位直接操作“字节数组对象”。

⑤ ObjectInputStream/ObjectOutputStream

处理流:以字节为单位直接操作“对象”。

⑥ DatalnputStream/DataOutputStream

处理流:以字节为单位直接操作“基本数据类型与字符串类型”。

⑦ FileReader/FileWriter

节点流:以字符为单位直接操作“文本文件”(注意:只能读写文本文件)。

⑧ BufferedReader/BufferedWriter
处理流:将Reader/Writer对象进行包装,增加缓存功能,提高读写效率。

⑨ BufferedInputStream/BufferedOutputStream
处理流:将InputStream/OutputStream对象进行包装,增加缓存功能,提高
读写效率。
⑩ InputStreamReader/OutputStreamWriter
处理流:将字节流对象转化成字符流对象。
⑪ PrintStream
处理流:将OutputStream进行包装,可以方便地输出字符,更加灵活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值