Максимальный байт

  • 10
  • Недоступна
Ввести с консоли имя файла. Найти максимальный байт в файле, вывести его на экран. Закрыть поток ввода-вывода.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (134)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Булат 23 уровень, Москва
25 декабря 2020, 09:50
Привет. Тем кто не понял, что за чиселко возвращается из набранного файла поясню как сам узнал: 1 ссыль - там норм объяснение простым языком как представлены символы 2я - это ASCII кодировка 3 - это конвертер hex в dec просто чтобы перепроверить результат В итоге моя прога в файле вида "line1 line2 line3" Вернула чиселко 110. Так вот это сивол "n", и как это вообще выглядит в hex редакторе на скрине ниже. Вообще похоже на правду - считали символы побайтово (в ascii 1 символ 1 байт) - самым большим оказался определенный char, который в таблице ascii грубо говоря ниже (там справа hex коды символов, а dec внизу). https://betterexplained.com/articles/a-little-diddy-about-binary-file-formats/ https://www.industrialnets.ru/files/misc/ascii.pdf https://coding.tools/hex-to-decimal ЗЫ. Единственное, что остается понять как это все считывается при unicode, но это уже другая история видимо.
Влад 19 уровень
22 декабря 2020, 12:06
Может кто-нибудь объяснить что это значит " Программа должна считывать имя файла с консоли." и как с этим бороться?
Никита 19 уровень, Москва
23 декабря 2020, 15:52
В консоль ты должен ввести полный путь к файлу. Например:
E:\FACEIT AC\service.log
Смотря какой файл считываешь
Е К 20 уровень, Краснодар
13 ноября 2020, 20:49
Валидацию прошел, используя ArrayList для хранения всех байтов, потом Collections.sort и вывод наибольшего. Здесь нашел и потестил решение с использование одной int переменной и функции Math.max. Такое решение куда оптимальнее и короче. Также в комменте ниже от @Игорь Birt понравилась конструкция:
try (FileInputStream fis = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());) {
//.........................
}
Это, я так понимаю, и называется try-with-resources. И в таком случае уже не нужен fis.close(). Он генерится автоматом?
Никита 19 уровень, Москва
23 декабря 2020, 15:55
Да, в try-with-resourses потоки закрываются автоматически. В одном "трае" можно перечислять несколько потоков по типу BufferedReader, FileInputStream и пр.
Вера 20 уровень, Москва
31 октября 2020, 07:39
Ничего не понимаю с -1 Если в файле записаны байты от -127 до -1, то что выдаст fis.read() ??
ProgX 18 уровень, Саратов
15 ноября 2020, 18:47
Предположу, что в int по другому транслируется, и мы смотрим сколько байт в символе который считали. Но это не точно)
Станислав 19 уровень, Москва
29 октября 2020, 07:54
Тот случай когда пример страницей нужно чуть-чуть изменить. Что брать за основу (паттерн так сказать):
//создаем объект FileInputStream, привязанный к файлу «c:/data.txt».
 FileInputStream inputStream = new FileInputStream("c:/data.txt");
 long sum = 0;

 while (inputStream.available() > 0) //пока остались непрочитанные байты
 {
  int data = inputStream.read(); //прочитать очередной байт
  sum += data; //добавить его к общей сумме
 }
 inputStream.close(); // закрываем поток

 System.out.println(sum); //выводим сумму на экран.
B. RIDER 27 уровень, Братислава
31 августа 2020, 14:01
Всего эту задачу решили 20916 учеников.
Mister S 35 уровень
30 августа 2020, 06:28
использовал нововыученый TreeSet, последним элементом там всегда будет наибольшее число ;).
Станислав 19 уровень, Москва
29 октября 2020, 07:55
Так то treeSet хорош лишь для immutable Set. Перепишешь значение и плакали все оптимизации.
Михаил Клименко 19 уровень, Краснодар Expert
10 августа 2020, 11:11
Всего эту задачу решили 20678 учеников. Снова в задачи вернулись котики. Кода для решения "кот наплакал" :)
B. RIDER 27 уровень, Братислава
31 августа 2020, 14:02
Всего эту задачу решили 20916 учеников.
Саша 20 уровень
1 июля 2020, 16:24
что делать если валидатор пишет, что эта задача может быть выполнена в intellij idea?
MR 22 уровень, Харьков
15 июля 2020, 18:19
Придется устанавливать, раз все ещё не установил
Улан Женишбек Уулу 18 уровень, bishkek
29 июля 2020, 10:05
Если нет idea , то можно решить сразу отправив на проверку. Валидатор пропустит.
Татьяна 22 уровень, Ростов на Дону Expert
26 июня 2020, 19:51
Дополнительная переменная для хранения максимального байта и простой if👍 Задача успешно прошла тестирование!