この 2 つのクラスの違いがわかりません。いつ 1 つよりも 1 つを使用しますか? 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について得た唯一の説明は、「文字のストリームをバイトのストリームに変換する」ということです.2番目の例では、テキストファイルにいくつかのバイトが表示されますか?
いくつかの説明をいただければ幸いです。