关于 FileWriter 和 OutputStreamWriter

2024-12-17 09:27:32
推荐回答(5个)
回答1:

FileReader 和FileWriter分别是InputStreamReader和outputStreamWriter的子类,他们的write和read方法其实是同一个方法。所以没有什么不一样。缓存的话可以考虑使用BufferedReader 和BufferedWriter 这个是带有缓存的封装。
FileReader,FileWriter 是读字符的,1个字符是2个字节,16位。
OutputStream ,InputStream是读字节的,1个字节是8位。
要是读汉字,一个汉字是2个字节,用InputStream读就把汉字活生生的拆一半了,自己可以写程序验证下。
字符流主要读文本比较效率。字节流主要读二进制文件,图片就是为了防止出现读取的单位放大,出现无法还原本程序的目的。

回答2:

FileWriter 用来写入字符文件的便捷类,此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的

要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter
jdk上写的很清楚

回答3:

OutputStreamWriter不能直接读写文件啊。
而FileWriter就可以直接读写文件。
再有OutputStreamWriter可用于将字节流转换成字符流,而FileWriter就不能了!

回答4:

FileWriter是OutputStreamWriter的子类,里面没有实现子类方法也就是FileWriter完全使用的是父类OutputStreamWriter已有的方法 就是FileWriter提供了很多方便的构造函数
简单来说:
对于一个已有的File对象file
可以直接构造出一个FileWriter
FileWriter fw =new FileWriter(file);
而不能直接构造出一个OutPutStreamWriter
OutputStreamWriter outputStreamWriter =new OutputStreamWriter(new FileOutputStream(new File("xxx")));

而使用上无差别

回答5:

分少