Я не понимаю разницы между этими двумя классами. Когда вы будете использовать один над одним? Я знаю, что 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();
Оба эти, похоже, работают одинаково для меня. Единственный раз, когда случается что-то странное, я пытаюсь поместить значение int в метод write(). Для примера FileWriter мой demo.txt полностью пуст. Для примера OutputStreamWriter я получаю некоторые странные символы в текстовом файле. Я читаю java-книгу, и единственным объяснением, которое я получаю для OutputStreamWriter, является то, что он "преобразует поток символов в поток байтов", поэтому не следует ли мне видеть некоторые байты в моем текстовом файле во втором примере?
Некоторые разъяснения были бы с благодарностью.