package com.javarush.task.task13.task1326;
import java.io.*;
import java.util.*;
import java.util.stream.Stream;
/*
Сортировка четных чисел из файла
*/
//C:\Users\Артём\Desktop\test.txt
public class Solution {
public static void main(String[] args) {
// напишите тут ваш код
try (Scanner sc = new Scanner(System.in); FileInputStream reader = new FileInputStream(sc.nextLine())){
byte [] arr = reader.readAllBytes();
String [] allBytes = new String(arr).split("\n");
for (String s:allBytes)
System.out.println(s);
int [] result = Arrays.stream(allBytes).mapToInt(Integer::parseInt).filter(x->(x%2==0)).toArray();
Arrays.sort(result);
Arrays.stream(result).forEach(System.out::println);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Артём
28 уровень
При тестировании получаю NumberFormatException - не понимаю в чем проблема с этим кодом, хелп, плиз.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
3 мая, 11:42решение
Я тебе больше скажу, твой код у валидатора даже не скомпилится, потому как метода readAllBytes() не существовало в 8й Java.
Перенос строки в разных системах может быть разным. В частности на винде это CRLF а не просто LF Вполне возможно что этот самый возврат каретки тебе 25ю строку и разваливает.
К слову, что помешало использовать BufferedReader? То, что в условии требуется использовать FileInputStream ведь не запрещает использовать обвязку над ним.
+2
АртёмExpert
3 мая, 13:23
Спасибо!
Перепроверил уже все, что мог - не подумал о разнице версий
Решил обойтись без буфера просто, чтобы поменьше кода писать, раз есть такой хороший метод как ReadAllBytes() :)
0
Денис Enterprise Java Developer
3 мая, 14:10
Не нужно пытаться писать меньше кода, пиши код так, чтобы его было удобно читать и видоизменять по необходимости.
В данном конкретном примере куда проще было бы использовать BufferedReader, чтобы читать файл построчно (судя по примеру ввода, одна строка - одно число). После чего их парсить и накинуть простенькую логику по нахождению четных чисел.
Что-то такое:
+1
АртёмExpert
5 мая, 09:55
Так действительно удобнее читать, благодарю
0