Писатель в файл с консоли

  • 16
  • Недоступна
Итак, вам нужно записать кое-что в файл. Для этого первым делом вы читаете с консоли имя файла, затем считываете строки до тех пор, пока пользователь не введёт слово exit и, наконец, выводите абсолютно все введённые строки в файл, каждую строчку с новой строки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (495)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Denis Malyshev QA в Sber
14 июня, 19:25
Лень думать и гуглить, просто взглянул на решение, посмотрел какие объекты там используются и по логике все легко написал, за 2 попытки. решение несложное, просто нужен опыт написания потоков и работы со StringBuilder. Все больше убеждаюсь, что без практики любая теория это бесполезная трата времени.
Lyokha Blagodatskikh
Уровень 23, Ural, Russian Federation
7 июня, 10:01
Собрал строки в ArrayList и потом записал в файл вот такой строчкой: for (String str: list) writer.write(s); и вот смотрю на неё, и думаю, наверняка её как то в потоке через вызов метода можно переписать, но как не могу допедрить... что то типа: list.stream().forEach(writer::write); - но это я фигню написал, но вы думаю поняли, что я хочу и имел ввиду.
se8509
Уровень 24, Ижевск, Россия
12 июня, 19:27
По пробуйте посмотреть с другой стороны, например поменять тип данных в который принимаются значения
Sergey Paleny
Уровень 22, Ставрополь, Россия
31 мая, 12:51
Решил со второй попытки, в первой попытке забыл в конце добавить в файл Exit. Строки вводил при помощи Scanner и сохранял в ArrayList<String>. Потом записал в файл. Пользовался Scanner-ом, потому что не понимаю как по-другому вводить текст с консоли, пойду разбираться как это сделано в правильном решении... Всем удачи! И, главное, ТЕРПЕНИЯ!!!
Lexman (Алексей)
Уровень 20, Москва, Russian Federation
позавчера, 17:52
Ахахах, также забыл Exit добавить, но сделал немного по-другому. Создал цикл While и в нем построчно читал данные, проверяя на Exit.
while(true){
                String s= scanner.nextLine();
                if(!s.equalsIgnoreCase("exit")) {
                    writer.write(s+"\n");
                }
                else {
                    writer.write(s+"\n");
                    break;
                }
Viktor QA Automation Engineer
24 мая, 07:12
Валидатор не пропускает. "Метод main должен закрывать объект типа BufferedWriter после использования." Объект типа BufferedWriter = writer закрывается....writer.close(); Где ошибка?
papsnaz
Уровень 26, Самара, Russian Federation
22 мая, 22:07
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
     BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(bufferedReader.readLine()))) {
         do {
             bufferedWriter.write(bufferedReader.readLine());
             bufferedWriter.newLine();
         } while (!bufferedReader.readLine().equals("exit"));
}
Почему не хочет работать? Подскажите плиз
Blynchik Работает в Pegas Touristik
24 мая, 07:03
Насколько я понял, в do-while ты вызываешь bufferedWriter, он считывает с клавиатуры, и потом ты это записываешь (первая строка в блоке do). Потом ты снова вызываешь bufferedWriter, он считывает с клавиатуры, но уже ничего не записывает, а просто переносит строку (вторая строка в блоке do). А уже потом происходит проверка. Поэтому, мне кажется, у тебя запись через раз.
papsnaz
Уровень 26, Самара, Russian Federation
25 мая, 18:16
Да, ты прав, понял это в следующих задачах
Kidchai
Уровень 21, Chicago, United States
19 мая, 21:36
Задача класс, побольше бы упражнений на потоки!
AlekseyS
Уровень 35, Москва, Russian Federation
13 мая, 18:13
Ребят, кто с курса Java Syntax Pro, не используйте классы Files и Path. Валидатор не примет - не увидит создание объекта BufferedWriter. Пора бы обновить задачку.
Anonymous #2934468
Уровень 28, Russian Federation
27 мая, 15:05
это задача на ИО, а не на НИО. что тут обновлять? не считая самого решения. я выше написал почему.
wshamin
Уровень 25, Санкт-Петербург, Россия
14 июня, 18:52
Спасибо тебе! Невероятное количество времени и сил сэкономлено мне этим ответом)
Ivan T
Уровень 29, Germany
11 мая, 09:07
outputStream.newLine(); не пропускает. Интересно кто пишет валидаторы?
Buenos
Уровень 33, Минск, Беларусь
7 мая, 16:02
как корреспондирует с темой задача - не очень понял
Buenos
Уровень 33, Минск, Беларусь
7 мая, 16:02
сделал через ArrayList - вводил новые строки до exit, а потом Буферридером в 4each все записал в файл