java中的字符是Unicode编码的, InputStream和OutputStream都是用来处理字节的,在处理字符时需要用getBytes()转换成字节,这就需要编写字节、字符之间的转换代码
java中提供了单独的类对IO设备进行字符输入与输出
Reader和Writer是所有字符流类的的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据
二进制文件和文本文件的区别
如果一个文件专用于存储文本字符,而又没有包含文本之外的字符,就可称之为文本文件。除此之外的文件就是二进制文件
Reader和Writer两个类主要用于操作文本数据的内容,而InputStream和OutputStream主要操作二进制格式的内容
FileInputStream.write(byte [] buf)写入字节数组,会自动调用flush方法
FileInputStream.write(byte b)写入单个字节,此方法不调用flush()方法
FileWriter.write(char [] cbuf)写入字符数组,不会自动调用flush方法
使用FileWriter写入字符数据比FileOutputStream要简便很多,但是FileReader并不比FileInputStream读取字符数据要简便多少,都是要先读取到一个字符数组或者字节数组中,然后把数组转换成字符串。
但是以后用包装类处理文本文件的时候就要用到FileReader