小史想要使用计算机从一个文件(java从入门到放弃.txt GBK 只要2个字节,纯中文不要用utf-8 他要3个字节)里获取数据,然后他就写了一个文件流FileInputStream 获取 数据到计算机。
小史说我像对文本文件进行操作啊,那么小史又头疼了,计算机读取的全是GBK字节数据,而java虚拟机只能处理Unicode编码格式的字符数据,那得转一下编码吧,然后他使用String的构造函数String(byte[] bytes, Charset charset) 转了一下编码格式,然后他开心的使用了起来。
使用久了之后小史不开心了,每次都要使用一下String的构造函数很不方便。他写了一个专门处理文本文件的一个类InputStreamReader,他写了一个构造函数InputStreamReader(InputStream in, String charsetName)
小王看见了觉的自己也得表现一下,他又写了一个FileReader,里面的具体转化全部把他隐藏起来了,往他的构造函数里面传入一个文件地址就可以了。可是他忘了写一个能指定编码格式的构造函数。不是到时有意为之还是,自己疏忽。
以上理解全部是基于jkd1.7版本
跟多理解JAVA IO系统