二进制I/O
文件分为文本文件和二进制文件
Java源程序:文本文件,用文本编译器读取
Java类文件:二进制文件,由Java虚拟机读取
文本文件由字符序列构成,二进制文件由位(bit)序列构成,文本文件中的字符使用某种字符编码模式(例如ASCII编码或者Unicode编码)来进行编码。二进制文件的优势在于它的处理效率比文本文件高
在Java中如何处理文本I/O
Java中许多用于各种目的的I/O类,通常分为输入类和输出类。输入类包含读数据的方法,而输出类包含写数据的方法,如PrintWriter是一个输出类的例子,而Scanner是一个输入类的例子
计算机并不区分二进制文件和文本文件。所有的文件都是以二进制文件存储的,所以从本质来讲,所有的文件都是二进制文件。文本I/O建立在二进制I/O的基础之上,它能提供一层抽象,用于字符的编码和解码(编码和解码是自动进行),在写入字符时,Java虚拟机会将Unicode码转化为文件特定的编码,而读取字符时,将文件特定的编码转化为Unicode码。
二进制I/O不需要转化,如果使用二进制I/O向文件写入一个数值,就是将内存中的值复制到文件中。
一般来说,对于文本编译器或者文本输出程序创建的文件,应该使用文本输入来读取,对于Java二进制输出程序创建的文件,应该使用二进制输入来读取
由于二进制I/O不需要编码和解码,所以它比文本I/O效率高,二进制文件与主机的编码方案无关,