Java提供了很多进行文件输入输出的类,这些类可以分为文本I/O类和二进制I/O类。文本I/O将数据解释成字符的序列,二进制I/O将数据解释成原始的二进制数。文本在文件中如何存储依赖于文件的编码方式。Java对文本I/O提供自动编码与解码
在文本文件中存储的数据是以人能读懂的方式表示的,而在二进制文件中存储的数据是用二进制形式来表示的。人读不懂二进制文件,它们是为程序读取而设计的。例如,Java源程序存储在文本文件中,可以使用文本编辑器阅读,但是Java的类存储在二进制文件中,使用Java虚拟机阅读。二进制文件的好处是处理它们的效率比文本文件高
文本文件是字符的序列构成的,二进制文件是由位的序列构成的。例如,十进制整数199在文本文件中是以三个字符序列‘1’、‘9’、‘9’来存储的,而在二进制文件中它是以byte类型的值C7存储的
1、文本输入输出
Java用于文本输入输出的类:
Reader:一个读取字符的抽象基类
Writer:一个向文件中写入字符的抽象基类
FileReader:以主机上默认的编码方式从文件中读取字符的类
FileWriter:以主机上的默认编码方式向文件中写入字符的类
BufferedReader:一个从缓冲区读取字符的类
BufferedWriter:一个向缓冲区写入字符的类
PrintWriter:以文本方式输出基本类型值、字符和字符串
PrintStream:与PrintWriter类似,只是向控制台输出
PrintWriter类和PrintSream类可以将对象、字符串和数值以文本的方式输出
out是定义在System类中类型为P