我不明白这两个类之间的区别。你什么时候用一个而不是一个?我知道 FileWriter 可以将字符输出到文件,但据我所知,OutputStreamWriter 也可以。这是我测试过的一些代码,它们似乎工作相同,我没有添加异常处理的东西,但让我们假设它在那里。
FileWriter writer = new FileWriter("C:\\Users\\owner\\Desktop\\demo.txt");
writer.write("hello");
writer.close();
我也试过这段代码:
File file = new File("C:\\Users\\owner\\Desktop\\demo.txt");
os = new OutputStreamWriter(new FileOutputStream(file));
os.write("hello");
os.close();
这两个对我来说似乎都一样。唯一发生奇怪的事情是当我尝试在 write() 方法中放入一个 int 值。对于 FileWriter 示例,我的 demo.txt 完全是空的。对于 OutputStreamWriter 示例,我的文本文件中有一些奇怪的符号。我正在阅读一本 java 书,我对 OutputStreamWriter 的唯一解释是它“将字符流转换为字节流”,所以我不应该在第二个示例中看到我的文本文件中的一些字节吗?
一些澄清将不胜感激。