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 лекция
Недоступна
Сортировка байт
Сортировка байт
Комментарии (461)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ruslan Gabzalilov Уровень 19
17 февраля 2026
Ну ептыть! Я только решил все задачки с прошлой темы( Пойду погуляю. . .
Alina Gabidulina Уровень 32
30 января 2026
Мое решение последней задачи, раскрыла импорты, сразу все стало понятно 😁

public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String file = reader.readLine();
        TreeSet<Integer> uniqSet = new TreeSet<>();

        try (FileInputStream fis = new FileInputStream(file)) {
            while (fis.available() > 0) {
                int b = fis.read();
                uniqSet.add(b);
            }
            for (int b : uniqSet) {
                System.out.print(b + " ");
            }
            System.out.println();
        }
    }
}
Grom Уровень 41
14 ноября 2025
Нас просят закрыть FileInputStream, но не BufferedReader.Поэтому предлагаю закрывать все потоки и принимать это как хорошую привычку при работе с ними:

String fileName;
try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
    fileName = in.readLine();
}
И нам не обязательно нужна какая-то еще дополнительная коллекция(resultList как в решении у многих), так как если мы знаем максимальное/минимальное число повторов, то просто бежим по базовой коллекции и выводим те биты, которые имеют это же значение. В последней задаче не обязательно нужен TreeSet, но повторить коллекции будет полезно
evggenn Уровень 42
24 октября 2025
Посчитать кол-во букв англ. алфавита.... Посчитал), но не принимают.

while ((charRead = reader.read()) != -1) {
            if (Character.isLetter(charRead)) {
                result += 1;
            }
        }
пока 2 сомнительных задачи...
Alina Gabidulina Уровень 32
30 января 2026
что за задача?
evggenn Уровень 42
24 октября 2025
Прайсы 2. Не понял требование из-за которого мой код не проходил - Товар с измененными данными должен находиться на той же строке в файле. Имеется ввиду, что если описание занимало 2 перевода строки, то обновленное описание тоже должно иметь 2 энтера? Иначе, у меня все соответствовало условиям, т.е. моя обновленная строка всегда начиналась на той же строке, только у меня один перевод строки в конце. Если входной файл такой

19846   Шорты пляжные
синие           159.00  12  
198479  Шорты пляжные черные с
рисунко173.00    17
19847983Куртка для сноубордистов,
разм10173.991234
то после запуска с таким параметром -u 198479 "Труселя чорные чоткие" 200 2 он становился таким

19846   Шорты пляжные
синие           159.00  12  
198479  Труселя    чорные чоткие      200     2   
19847983Куртка для сноубордистов,
разм10173.991234
Что тут неправильного?) (мой измененный товар находится на той же строке в файле)
ТимБай Уровень 16
17 ноября 2025
походу, этот комментарий не сюда
Anonymous #3585174 Уровень 33
2 сентября 2025
Like
Дмитрий Уровень 16
6 июля 2025
А зато все основные коллекции вспомнил 😁 ("Самые частые байты"): try (FileInputStream fis = new FileInputStream(new Scanner(System.in).nextLine())) { // Считываем все байты из файла в список List<Byte> list = new ArrayList<>(); while (fis.available() > 0) list.add((byte) fis.read()); // Понимаем из каких уникальных элементов/байтов состоит наш список/файл Set<Byte> byteSet = new HashSet<>(list); /* Выясняем сколько раз каждый из элементов встречается в списке/файле и удобненько сохраняем эту инфу в мапу */ HashMap<Byte, Integer> map = new HashMap<>(); for(Byte b: byteSet){ map.put(b, Collections.frequency(list,b)); } // Выясняем максимальное количество повторов элемента int maxValue = Collections.max(map.entrySet(), Map.Entry.comparingByValue()).getValue(); // Выводим те элементы, количество повторов которых соответствует максимальному map.entrySet().stream() .filter(e -> e.getValue().equals(maxValue)) .forEach(e -> System.out.print(e.getKey() + " ")); }
9 июня 2025
Последнюю задачу решил через старый добрый ArrayList с проверкой перед добавлением list.contains(i). Потом две строчки Collections.sort(list); list.forEach(s -> System.out.print(s+ " "));
Eternal Fire Уровень 30
7 июля 2025
всегда заглядываю в import задач, конкретно в этой как раз был TreeSet, резко пришлось вспоминать, что это такое и использовать его )
Kostas Уровень 30 Expert
3 декабря 2024
Кстати, как могли заметить, в задачах выводятся ASCII коды символов (e.g. 97), а не сами символы(e.g. a). И в правильных решениях - тоже. А сами символы мне удалось вывести, например, так: for (Integer resultItem : resultList) { // System.out.print(resultItem + " "); char chr = (char) resultItem.intValue(); System.out.print(chr + " "); }
{Java_Shark} Уровень 36
20 ноября 2024
++