前面几篇文章学习了File类的基本使用,但是发现了一个问题没有,目前我们都没有讲文件的打开和编辑修改的代码,原因就是我们需要学习IO流才能做到这些。这篇,来学习IO流的基本概念和分类以及注意事项,纯概念没有代码。
1.掌握几个概念
1)IO流用来处理设备之间的数据传输,I是单词input的缩写,O是output的缩写,分别表示输入和输出。
2)Java对数据的操作是通过流的方式,包括打开一个文件,拷贝一个图片等。
3)Java用于操作流的类都在IO包中,使用的时候需要导入包。
4)流按流向分为两种:输入流和输出流
5)流按操作类型分为两种:
-- 字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节方式存储
-- 字符流:字符流只能操作纯字符数据,比较方便。
这里我们看到字符流,可能能想起字符集的概念,或者字符编码的知识,这里字符流就是和字符编码集有关系,例如处理一个英文内容的文档和处理一个中文的文档,还是有区别,中文的文档容易产生乱码。后面我们会介绍字符流,我们先来学习字节流的相关方法和操作。
2.IO流的常用父类
字节流的抽象父类:
-- InputStream
-- OutputStream
字符流的抽象父类:
-- Reader
-- Writer
打开JDK 1.6 API中文文档,分别搜索这两个类,注意是在IO包下,例如打开InputStream,可以看到第一句话就是“此抽象类是表示字节输入流的所有类的超类。”所以,我们具体学习是它子类下的常用方法。字符流这两个也是分别的超类,后面文章再介绍。
3.使用IO类注意事项
-- 使用前,需要导入IO包相关类,例如前面学习的File
-- 使用时,进行IO异常处理。打开一个文件,这个文件路径很可能不存在,这样异常需要处理。
-- 使用后,需要释放资源。例如,打开文件读取之后,需要关闭文件,释放内存资源。