Валидатор не пропускает по 4-ому пункту.
Вывод не соответствует заданию. Проверь свое решение на примере из условия.
Проверку по примеру проходит.
Решение непростое, но на, первый взгляд, - рабочее.
тут по тексту последняя редакция кода - почистил перышки.
package com.javarush.task.task13.task1326;
import java.io.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Collections;
/*
Сортировка четных чисел из файла
*/
public class Solution {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
ArrayList<String> list = new ArrayList<>();
StringBuilder sb = new StringBuilder();
InputStream inputStream = new FileInputStream(reader.readLine());// вводим путь к файлу
BufferedInputStream buffer = new BufferedInputStream(inputStream);
while (buffer.available() > 0) { // читаем поток посимвольно и переносим в строку (StringBuilder) по символам-маркерам (числа и знак минус)
char c = (char) buffer.read();
if (c == '-' || c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
sb.append(c);
else if (!String.valueOf(sb).equals("")) { // по появлению немаркированного условием символа в потоке и при ненулевом значении строки
list.add(String.valueOf(sb)); // переносим строку в лист строк
if (buffer.available() > 0) // мягко обнуляем строку перед новым наполнением всегда, кроме последнего раза
sb = new StringBuilder();
}
}
ArrayList<Integer> list1 = new ArrayList<>(); // лист строк переносим в лист Интеджеров и параллельно убираем нечетные
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i)) % 2 == 0) {
list1.add(Integer.parseInt(list.get(i)));
}
}
Collections.sort(list1); // сортируем
for (int i = 0; i < list1.size(); i++)
System.out.println(list1.get(i)); // выводим в консоль
inputStream.close();
buffer.close();
} catch (Exception e) {
System.out.println("Error");
}
}
}package com.javarush.task.task13.task1326;
import java.io.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Collections;
/*
Сортировка четных чисел из файла
C:\Users\aam\Desktop\1.txt
*/
public class Solution {
public static void main(String[] args) throws IOException {
InputStream inputStream = null;
BufferedInputStream buffer = null;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
ArrayList<String> list = new ArrayList<>();
StringBuilder sb = new StringBuilder();
try {
inputStream = new FileInputStream(name); // вводим путь к файлу
buffer = new BufferedInputStream(inputStream);
while (buffer.available() > 0) { // читаем поток посимвольно и переносим в строку (StringBuilder) по символам-маркерам (числа и знак минус)
char c = (char)buffer.read();
if (c == '-' || c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
sb.append(c);
else if(!String.valueOf(sb).equals("")) { // по появлению немаркированного условием символа в потоке и при ненулевом значении строки
list.add(String.valueOf(sb)); // переносим строку в лист строк
if (buffer.available() > 0) // мягко обнуляем строке перед новым наполнением всегда, кроме последнего раза
sb = new StringBuilder();
}
}
ArrayList<Integer> list1 = new ArrayList<>(); // лист строк переносим в лист Интеджеров и параллельно убираем нечетные
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i)) % 2 == 0) {
list1.add(Integer.parseInt(list.get(i)));
list.remove(i);
i--;
}
}
Collections.sort(list1); // сортируем
for (int i = 0; i < list1.size(); i++)
System.out.println(list1.get(i)); // выводим в консоль
}
catch (Exception e) {
System.out.println("Error");
} finally {
reader.close();
}
inputStream.close();
buffer.close();
}
}