原文地址:http://hi.baidu.com/pinenarsu/blog/item/da9880951a48c80b7bf480b2.html
引入文本文件和二进制文件的概念:
其实计算机不区分文本文件与二进制文件。所有的文件都是以二进制格式来存储的。因此,从本质上所有的文件都是二进制文件。文本I/O是二进制I/O基础上提供的一层抽象,它封装了字符的编码和解码过程。在文本I/O中自动进行编码和解码。一般,对于文本编辑器或文本输出程序创建的文件,应该使用文本输入来读取,对java二进制输出程序创建的文件,应该使用二进制来读取。对于二进制输入,要想以正确的类型和顺序读取,必须准确地了解数据是如何被写入的。二进制I/O包含读写字符串的方法。
所以I/O分为文本I/O和二进制I/O。文本I/O将数据解释成字符的序列,二进制I/O将数据解释成原始的二进制数。文本在文件中如何存储依赖于文本的编码方式。
文本I/O:
Reader类和Writer类是所有文本输入输出的根类。
FileReader类和FileWriter类用于对文件实现输入输出。
BufferReader类和BufferWriter类包装文本输入输出流,提高速度和效率。
PrintWriter类和PrintStream类可以以文本方式输出基本类型数据值、字符串和对象。
二进制I/O:
InputStream类和OutputStream类是二进制I/O类的根类。
FileInputStream类和FileOutStream类用于对文件实现二进制输入输出。
BufferedInputStream类和BufferedOutStream类包装二进制输入输出以提高速度和效率。
DataInputStream类和DataOutputStream类用来读写基本类型数据和字符串。
ObjectInputStream类和ObjectOutputStream类在文件中读写对象、基本类型数据值和字符串。要使对象可序列化,定义对象的类必须实现java.io.Serializable接口。
RandomAccessFile类允许从文件中读写数据,用“r”只读的方式打开文件,用“rw”可读写的方式打开文件。RandomAccessFile类实现了DataInput和DataOutput接口,所以RandomAccessFile中的许多方法都与DataInputStream和DataOutputStream中的相似。
引入文本文件和二进制文件的概念:
其实计算机不区分文本文件与二进制文件。所有的文件都是以二进制格式来存储的。因此,从本质上所有的文件都是二进制文件。文本I/O是二进制I/O基础上提供的一层抽象,它封装了字符的编码和解码过程。在文本I/O中自动进行编码和解码。一般,对于文本编辑器或文本输出程序创建的文件,应该使用文本输入来读取,对java二进制输出程序创建的文件,应该使用二进制来读取。对于二进制输入,要想以正确的类型和顺序读取,必须准确地了解数据是如何被写入的。二进制I/O包含读写字符串的方法。
所以I/O分为文本I/O和二进制I/O。文本I/O将数据解释成字符的序列,二进制I/O将数据解释成原始的二进制数。文本在文件中如何存储依赖于文本的编码方式。
文本I/O:
Reader类和Writer类是所有文本输入输出的根类。
FileReader类和FileWriter类用于对文件实现输入输出。
BufferReader类和BufferWriter类包装文本输入输出流,提高速度和效率。
PrintWriter类和PrintStream类可以以文本方式输出基本类型数据值、字符串和对象。
二进制I/O:
InputStream类和OutputStream类是二进制I/O类的根类。
FileInputStream类和FileOutStream类用于对文件实现二进制输入输出。
BufferedInputStream类和BufferedOutStream类包装二进制输入输出以提高速度和效率。
DataInputStream类和DataOutputStream类用来读写基本类型数据和字符串。
ObjectInputStream类和ObjectOutputStream类在文件中读写对象、基本类型数据值和字符串。要使对象可序列化,定义对象的类必须实现java.io.Serializable接口。
RandomAccessFile类允许从文件中读写数据,用“r”只读的方式打开文件,用“rw”可读写的方式打开文件。RandomAccessFile类实现了DataInput和DataOutput接口,所以RandomAccessFile中的许多方法都与DataInputStream和DataOutputStream中的相似。