Не дошел еще до раздела с InputStream и OutputStreeam, но задачку, вроде, решил. Скажите, пожалуйста, как оптимизировать код и сделать его меньше. Я уверен, что я написал слишком много кода для такой несложной задачи
package com.javarush.task.task13.task1326;
/*
Сортировка четных чисел из файла
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Solution {
public static void main(String[] args) {
// напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
List<String> list = new ArrayList<>();
List<Integer> evenMaxList = new ArrayList<>();
ArrayList<Character> arrChar = new ArrayList<>();
Collections.addAll(arrChar, '1','0','2','3','4','5','6','7','8','9','-');
int p = 0;
while (p == 0)
try {
InputStream inputStream = new FileInputStream(reader.readLine());
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
p++;
String m = "";
while (bufferedInputStream.available()>0){
char d = (char) bufferedInputStream.read();
System.out.println("Был прочитан символ " + d );
if (arrChar.contains(d)){
m = m + d;
}
else{
if (m.isEmpty()){
m = "";
}
else {
list.add(m);
m = "";
}
}
}
for (String k: list) {
if (Integer.parseInt(k)%2 == 0){
evenMaxList.add(Integer.parseInt(k));
}
}
Collections.sort(evenMaxList);
for (int z: evenMaxList) {
System.out.println(z);
}
reader.close();
inputStream.close();
bufferedInputStream.close();
}
catch (IOException e){
System.out.println("Такого файла не существует, введите название файла еще раз");
}
}
}