package com.javarush.task.task13.task1326;
/*
Сортировка четных чисел из файла
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws Exception {
// напишите тут ваш код
BufferedReader path = new BufferedReader(new InputStreamReader(System.in));
FileInputStream file = new FileInputStream(path.readLine());
String strNumber = "";
ArrayList<Integer> numbers = new ArrayList<>();
while (file.available() > 0) {
char chr = (char)file.read();
if ((chr == '-') || (Character.isDigit(chr))) strNumber += Character.toString(chr);
if ((chr == '\r') || (file.available() == 0)) {
if (Integer.parseInt(strNumber) % 2 == 0) numbers.add(Integer.parseInt(strNumber));
strNumber = "";
}
}
Collections.sort(numbers);
for (Integer i : numbers) System.out.println(i);
path.close();
file.close();
}
}
/*1. Ввести имя файла с консоли.
2. Прочитать из него набор чисел.
3. Вывести на консоль только четные, отсортированные по возрастанию.
Пример ввода:
5
8
-2
11
3
-5
2
10
Пример вывода:
-2
2
8
10
Требования:
1. Программа должна считывать данные с консоли.
2. Программа должна создавать FileInputStream для введенной с консоли строки.
3. Программа должна выводить данные на экран.
4. Программа должна вывести на экран все четные числа считанные из файла отсортированные по возрастанию.
5. Программа должна закрывать поток чтения из файла(FileInputStream)*/
Maxim
28 уровень
Работает правильно, но валидатор не пропускает
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
VIKTOR NEZHELSKIYExpert
2 апреля 2019, 17:55
Файл данных надо читать построчно, а не байты.
0
Maxim
3 апреля 2019, 15:02
Сначала я так и сделал:
Но валидатор не пропустил - требовал FileInputStream (я не заметил это условие)
0
VIKTOR NEZHELSKIYExpert
3 апреля 2019, 17:19
А так не пробовал? У меня валидатор принял.
0