Java中IO流相关知识整理(一)

一、看图说话,手绘神图

在这里插入图片描述

网络-结构图
在这里插入图片描述

要想彻底搞明白IO流,那我们必须得弄明白什么是IO.
【I/O流原理作用】

**Input/Output:输入输出机制**

输入机制:允许java程序获取外部设备的数据(磁盘,光盘,网络等)。

输出机制:保留java程序中的数据,输出到外部设备上(磁盘,光盘等)。

二、流的分类:


通过不同的方法,可以对于进行分类。

1.按照功能来划分:

输入流:只能从中读取数据,而不能向其写入数据。
输出流:只能向其写入数据,而不能从中读取数据。

2.按照处理单元来划分

字节流和字符流操作的方式基本上完全相同。操作的数据单元不同
字节流:操作的是8位的字节 InputStream/OutputStream 作为字节流的基类
字符流:操作的是16位的字符 Reader/Writer 作为字符流的基类
关于字节流和字符流的区别?
字节流
1.  字节流读取的时候,读到一个字节就返回一个字节。字符流使用字节流读到一个或多个字节(中文对应的字节是两个,UTF-8码表中是三个)时,先去查指定的
编码表,将查到的字符返回。
2.  字节流可以处理所有类型的数据,如图片、mp3、视频等。  字符流只能处理字符数据。
3.  字节流输入流都是以InputStream结尾,字节输出流都是以OutputStream结尾。在InputStream或者OutputStream前面代表这个流的作用。   
字符流
1. 字符流输入流都是以Reader结尾,字符输出流都是Writer结尾,相同的字符流前面的代表这个流的作用。实际上字节流在操作的时候本身是不会用到缓存区的,是文件本身的直接操作的,但是字符流在操作的时候下会用到缓冲区,是通过缓冲区来操作文件的。
使用字节流好还是字符流好?
 没错,是字节流, 因为硬盘上所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但字符流只是在内存中才会形成的,所以在实际开发中,字节流使用
更为广泛。

总结: 如果是处理纯文本数据,就要优先考虑字符流,除此之外都是用字节流。
3.按照角色进行划分

节点流:可以直接从/向外部设备读取/写入数据的流,称之为节点流,节点流也被称之为低级流。
处理流:对于已经存在的流进行了连接和封装,扩展了原来的读/写的功能。处理流也被称之为高级流。

Java的io包当中包括40多个流,他们都有紧密的联系和使用的规律,这些流都源于4个抽象基类。

InputStream / Reader : 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
OutputStream/Writer :所有输出流的基本,前者是字节输出流,后者是字符输出流。

File相关的整理放在下一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值