通常在使用Java中的IO的时候,知道分为字节流和字符流。为了理解IO,我们先要知道什么是文本文件和二进制文件。
一 简单理解
计算机的文件分为文本文件和二进制文件。
①文本文件
所有能用记事本打开的文件,打开之后,我们可以看到其中的字符内容而不是乱码的文件。
②二进制文件
不属于上述情况的文件都是二进制文件。
二 深入理解
计算机中的文件都是二进制文件,文本文件是二进制文件的一个特例。
当文件中的内容恰好能被正常解析成字符串时,则二进制文件就编程了文本文件。
更有甚者,即使是正常的文本文件,如果我们打开该文件时强制使用了“错误”的编码集,例如我们用文本编辑器用UTF-8打开一个
中文内容的文本文件txt文件,会发现该文本文件的内容编程了乱码。
原因是打开文件时没有用和保存文件时使用相同的编码集。Windows下简体中文默认使用GBK编码集,而Linux下简体中文默认使用
UTF-8编码集。
摘自《疯狂JAVA讲义》