JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/почему когда я ставлю в if break , программа отказывается...
Анна Ивашенцева
24 уровень
  • 30.01.2020
  • 623просмотров
  • 7комментариев

почему когда я ставлю в if break , программа отказывается компилироваться ? никак понять не могу

Вопрос по задаче DownloadException
Java Core,  8 уровень,  5 лекция
Решен


1 Считывать с консоли имена файлов.
2 Если файл меньше 1000 байт, то:
2.1 Закрыть потоки работы с файлами.
2.2 Выбросить исключение DownloadException.

Требования:
  • Программа должна считать имена файлов с консоли.
  • Для чтения из файлов используй поток FileInputStream.
  • Программа должна работать, пока введенный файл не окажется меньше 1000 байт.
  • Программа должна завершиться исключением DownloadException.
  • Поток FileInputStream должен быть закрыт.
....
package com.javarush.task.task18.task1810; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.io.*; /* DownloadException */ public class Solution { public static void main(String[] args) throws DownloadException, IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); FileInputStream file1 = new FileInputStream(reader.readLine()); ArrayList<Integer> list = new ArrayList<>(); while(file1.available() > 0) { list.add(file1.read()); } if(list.size() < 1000) { break; } reader.close(); file1.close(); throw new DownloadException(); } public static class DownloadException extends Exception { } }
0
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павлик
Уровень 25
30 января 2020, 09:46
ArrayList<Integer> list = new ArrayList<Integer>(); Что вы хотите сделать конкретно используя break? Если прерывать while то засуньте if внутрь тела while
0
Ksenia VolkovaJava Developer в DXCMaster
30 января 2020, 09:43
Потому что break не внутри цикла. Считывать имена файлов нужно в цикле. А для того, чтобы определить размер, считывать файл по байту необязательно.
0
Анна Ивашенцева
Уровень 24
30 января 2020, 09:59
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); FileInputStream file1 = new FileInputStream(reader.readLine()); while(file1.available() > 0) { if(file1.available() < 1000) { break; } else { int data = file1.read(); } } reader.close(); file1.close(); throw new DownloadException(); переписала , но по 3 пункту не проходит ((
0
Ksenia VolkovaJava Developer в DXCMaster
30 января 2020, 10:04
1. Имена файлов опять не считываешь в цикле. 2. В любом файле рано или поздно останется меньше 1000 непрочитанных байт и программа неизбежно кинет ошибку.
0
Никита Бужинский
Уровень 25
30 января 2020, 10:07
Нужно отдельно в цикле BufferedReader, который каждое считанное имя файла передает во второй цикл, где FileInputStream читает данные из файла.
0
Никита Бужинский
Уровень 25
30 января 2020, 10:08
А так у тебя получилось, что ты считала одно имя файла с консоли и на этом конец.
0
Анна Ивашенцева
Уровень 24
30 января 2020, 10:52
спасибо большое , задача решена !)
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush