Сперва делал сортировку на ArrayList, но она не работала, поэтому перекинул всё в Integer[].
Всё равно не работает.
Проверка ввода и проверка добавления в массив работают корректно.
Программа выводит:
Сортировка:
8
-2
2
10
package com.javarush.task.task13.task1326;
/*
Сортировка четных чисел из файла
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) {
// напишите тут ваш код
BufferedReader bufferedReader = null;
BufferedReader bufferedFileReader = null;
InputStream inputStream = null;
String inputFileName;
int count = 0;
Integer[] integerArray;
ArrayList<Integer> tempArray = new ArrayList<>();
//Ввод данных
try {
bufferedReader = new BufferedReader(new InputStreamReader(System.in));
//читаем имя файла
inputFileName = bufferedReader.readLine();
inputStream = new FileInputStream(inputFileName);
bufferedFileReader = new BufferedReader(new InputStreamReader(inputStream));
int i;
String s;
//читаем данные из файла
while ((s = bufferedFileReader.readLine()) != null){
i = Integer.parseInt(s);
// System.out.println("Проверка ввода: " + i);
if(i % 2 == 0) {
count++;
tempArray.add(i);
}
}
} catch(IOException e){ e.printStackTrace(); } finally {
try {
bufferedReader.close();
inputStream.close();
bufferedFileReader.close();
} catch(IOException e){ e.printStackTrace();}
}
integerArray = new Integer[count];
for(int i = 0; i < tempArray.size(); i++){
integerArray[i] = tempArray.get(i);
}
//Проверка добавления в массив
// System.out.println("Проверка добавления в массив: " );
// for (Integer ints : integerArray) System.out.println(ints);
//Сортировка
// System.out.println("Сортировка: ");
for (int i = integerArray.length -1; i > 0; i--){
for (int j = 0; i < i; j++){
if(integerArray[j] > integerArray[j+1]){
int temp = integerArray[j];
integerArray[j] = integerArray[j+1];
integerArray[j+1] = temp;
}
}
}
//Вывод результата
for (int k = 0; k < integerArray.length; k++){
System.out.println(integerArray[k]);
}
}
}