Java基础: IO操作
最近抽了点时间回顾了java基础,昨天看了java的IO操作,把大致的总结写在这里。
Java的IO操作主要是数据的输入、输出操作和文件管理,输入输出操作可以包括控制台、文件的输入输出和流的输入输出,流的输入输出可以用于文件,也可以用于网络数据。
控制台
控制台的输入输出中,输出大家最熟悉,最常用的就是System.out,那么输入操作可以用System.in,也可以System.console,区别是前者读入字节,后者读入字符串
文件处理
File类:可以实现对文件目录和文件的增删改,查看文件列表、判断文件是否存在的操作,是java中处理文件最基本的类。
FileFilter接口:可以实现对文件的查找,比较常用的操作就是搜索特定文件扩展名的操作,开发者实现该接口中的accept方法就可以。
RandomAccessFile类:可以随机读取文件,主要是用于文件内容的读写,刚说到的File类和FileFilter是对文件和文件目录进行操作。RandomAccessFile类将文件内容存在一个大型的Byte数组中,它存在一个文件指针,指向可以输入输出操作的位置,并可以用seek方法进行定位。
流操作
java的IO操作是以流为基础的,流就是数据的有序传输,从某个源头到某个目的地。
如果外界的数据进入java程序进行处理,包括文件中的数据,网络传输过来的数据,那么这个流就叫输入流,处理后输出的叫输出流,可以输出到磁盘文件或其他程序。
流中存在两种形式的数据,一种是字节,叫做字节流,另一种是字符,叫做字符流。针对流的不同数据传输方式,就形成了两套类,一套是处理字节输入输出的类,主要继承InputStream和OutputStream抽象类,另一套处理字符,主要继承reader和writer抽象类。
既然流操作能处理文件,之前说的文件处理RandomAccessFile类也能处理文件,他们的区别在于Random处理文件更加简单,比使用流简单,但没有流的灵活性高。