JAVA输入输出流

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:22:05
书上写java提供InputStreamReader和OutputStreamWriter两个类完成字节流和字符流的转换。但是好像FileReader和FileWriter也能够读取字符,那还用先前两个类转换个什么呢?请高手具体讲讲其区别?

1、InputStreamReader和OutputStreamWriter在转换的字节流和字符流的时候,能够制定编解码方式。例如
Reader r = new InputStreamReader(new FileInputStream("myfile.txt"),"GBK");

而使用FileReader和Writer无法制定编码,只能使用操作系统默认的编码。

2、InputStreamReader不仅仅可以对FileInputStream进行转换。对于其他的字节流而言(例如网络流等)同样可以完成转换。

FileReader是继承于InputStreamReader类的,它是InputStreamReader的一个具体化、特殊化,所以它具有InputStreamReader的全部功能。但是它仅限于处理文件输入流,但是InputStreamReader可以所有的InputStream,例如网络输入流,zip输入流等等。

FileReader 可以读取外部文件。

InputStreamReader 读取内部文件。如class下的图片、声音等。