JAVA提供了很多进行文件输入输出的类,主要分为文本I/O类和二进制I/O类。
先理解以下这两者之间的区别:
文本文件和二进制文件
文本文件是由字符的序列构成的,它存储的数据是以人能读懂的方式表示的,可以使用文本编辑器进行阅读,文件名的扩展名为。txt。
二进制文件是由位的序列构成的,它存储的数据以二进制的形式表示,使用JVM阅读,二进制文件的优点就是比文本文件的效率更高。二进制文件与主机编码方案无关因此可移植。JAVA程序在任何机器上都可以访问Java程序创建的二进制文件,文件的扩展名为.dat。
文本I/O和二进制I/O
文本I/O是二进制I/O基础上的一层抽象。它封装了字符的编码和解码过程它在向文件进行读写过程中进行解码和编码。在美国Windows默认的编码方案是ASCII码,在中国默认的编码方案是GBK,GBK和UTF-8是两种常见的编码方案。
二进制I/O不要求转化,如果使用二进制I/O向文件写入数据,就是讲内存中的确切值复制到文件中。内存中的数值和文件中显示的数值的形式是一样的。
对于二进制文件首先要理解以下几个问题:
1、什么是二进制文件?(上面已经进行介绍)
2、输入和输出的方向
输入方向是从文件中读取数据的方向也可以理解文件向程序进行输入,输出方向是用程序向文件中传输数据的方向(output.printwriter)
3、输入流和输出流
输入流----输入对象,输出流----输出对象
输入输出对象可以为7大数据类型也可为字符和字符串
然后最后需要掌握的就是输入输出流的子类:FileInputStream、ObjectInputStream、DataInputStream、BufferInputStream以及对应的输出流。这里他们有很多相似的知识点,至于区别和联系可以在日后联系过程中慢慢理解和记忆