JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Что не так?
Rostislav Romanov
22 уровень
  • 13.11.2020
  • 271просмотров
  • 2комментариев

Что не так?

Вопрос по задаче Четные символы
Java Core,  9 уровень,  5 лекция
Обсуждается

Считать с консоли 2 имени файла.
Вывести во второй файл все символы с четным порядковым номером (нумерация начинается с 1).

Пример первого файла:
text in file
Вывод во втором файле:
eti ie

Закрыть потоки ввода-вывод

Требования:
  • Программа должна считывать имена файлов с консоли (используй BufferedReader).
  • BufferedReader для считывания данных с консоли должен быть закрыт.
  • Программа должна считывать содержимое первого файла (используй FileReader c конструктором String).
  • Поток чтения из файла (FileReader) должен быть закрыт.
  • Программа должна записывать во второй файл все символы из первого файла с четным порядковым номером (используй FileWriter).
  • Поток записи в файл (FileWriter) должен быть закрыт.
....
package com.javarush.task.task19.task1906; import java.awt.*; import java.io.*; import java.util.ArrayList; /* Четные символы */ // C:\Users\rchabr\Desktop\DB.txt // C:\Users\rchabr\Desktop\DB2.txt public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String name1 = reader.readLine(); String name2 = reader.readLine(); reader.close(); BufferedReader readFile = new BufferedReader(new FileReader(name1)); String s; String all = ""; while ((s = readFile.readLine()) != null) { all = all + s; } readFile.close(); String list = ""; for (int i = 0; i < all.length(); i++) { if ((i+1) % 2 == 0) { char c = all.charAt(i); list = list + c; } } FileWriter fileWriter = new FileWriter(name2); fileWriter.write(list); fileWriter.close(); } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Кирилл
Уровень 41
15 ноября 2020, 18:11
смысл получить каждый второй байт. если на примере массива то берем каждый нечетный индекс. индексация начинается с 0(он четный) а нам нужен эл-т с индексом 1(сам индекс нечетный в реалиях массива, но в реалиях нашей жизни именно эл-т с этим индексом будет нужный нам байт т.к. мы считаем с единицы. мы считаем 1,2,3 и т.д., а в массиве [0],[1],[2] и т.д. и соответствие отсюда 1 соответствует [0], 2 соответствует [1] и т.д.)
0
Pig ManГлавная свинья в Свинарнике
13 ноября 2020, 15:49
Не особо вчитывался в твой код, но у BufferedReader есть метод skip(long), который пропускает указанное количество байт
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush