Подскажите, пожалуйста.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Я считываю с консоли 2 имени файлов:
String file1 = reader.readLine();
String file2 = reader.readLine();
Создаю поток на считывание данных из первого файла:
FileInputStream inputStream = new FileInputStream(file1);
Создаю поток на запись во второй файл:
FileOutputStream outputStream = new FileOutputStream(file2);
Когда я запускаю программу, получается, что данные из первого файла(из того где считываю)(file1) удаляются.
Если я создам поток на запись вот так: FileOutputStream outputStream = new FileOutputStream(file2, true); - то данные из первого (file1) файла не удаляются.
Мне понятно, что когда я дописываю true , то в file2 данные будут дописаны после имеющихся в file2.
Вопрос:
Почему наличие true при создании потока на запись(new FileOutputStream(file2, true)) изменяет работу потока на чтение?
Они же вроде не связаны?
Иван
34 уровень
Help!
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
IceBergMaster
6 сентября 2019, 12:47
Если открывать FileOutputStream без true, то содержимое файла будет очищено, поток на чтение не затрагивается.
0
Иван
6 сентября 2019, 13:21
Спасибо. Разобрался.
Я два раза считывал один и тот же файл.
Проблема не в программе, а в том, что я не правильно вводил данные)))
0