JavaRush /Курси /Java Core /Завдання на FileInputStream, FileOutputStream

Завдання на FileInputStream, FileOutputStream

Java Core
Рівень 8, Лекція 3
Відкрита

— Привіт, Аміго!

10
Задача
Java Core, 8 рівень, 3 лекція
Недоступна
Максимальний байт
Максимальний байт
5
Задача
Java Core, 8 рівень, 3 лекція
Недоступна
Мінімальний байт
Мінімальний байт
20
Задача
Java Core, 8 рівень, 3 лекція
Недоступна
Найчастіші байти
Найчастіші байти
10
Задача
Java Core, 8 рівень, 3 лекція
Недоступна
Найрідкісніші байти
Найрідкісніші байти
10
Задача
Java Core, 8 рівень, 3 лекція
Недоступна
Сортування байт
Сортування байт
Коментарі (2)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Vladimir Рівень 1
2 березня 2025
в задаче хард почему нельзя public class Solution { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); FileInputStream fis = new FileInputStream(br.readLine()); Map<Integer,Integer> list = new HashMap<>(); int current = 0; while (fis.available() > 0) { current = fis.read(); list.put(current, list.getOrDefault(current, 0) + 1); } fis.close(); br.close(); int max = Collections.max(list.values()); for (var entry : list.entrySet()) { if (entry.getValue() == max) { System.out.print(entry.getKey() + " "); } } } } ??? походу хочет только чтобы было как в ответе(
Truman Рівень 40
11 квітня 2025
• Использование available() вместо проверки (read() != -1) не гарантирует корректное чтение всего файла, • Использование конструкций, не поддерживаемых требуемой версией Java, или отклонения от заданного формата решения могут стать причиной неверного результата по стандартам проверки. Чтобы привести ваш код к официальному решению (а значит, чтобы его приняли в задаче «Хард»), следует: • Заменить условие чтения файла на:

int current;
while ((current = fis.read()) != -1) {
    list.put(current, list.getOrDefault(current, 0) + 1);
}
• Если требуется работать в Java 8, использовать вместо var явный тип, например, Map.Entry<Integer, Integer>. Также можно рассмотреть вариант с использованием массива размером 256 для подсчета частоты каждого байта, что часто встречается в подобных задачах. Таким образом, хотя логика вашего кода в целом верна, именно эти детали (с available(), стилем и форматом) являются причиной, почему решение не принимается в задаче «Хард».