task13.task1326

Сортировка четных чисел из файла
1. Ввести имя файла с консоли.
2. Прочитать из него набор чисел.
3. Вывести на консоль только четные, отсортированные по возрастанию.

Требования:
1. Программа должна считывать данные с консоли.
2. Программа должна вывести на экран все четные числа считанные из файла отсортированные по возрастанию.
3. Программа должна выводить данные на экран.
4. Программа должна закрывать поток чтения из файла(FileInputStream).

И все бы хорошо, если бы не надо было использовать именно FileInputStream

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.io.FileInputStream;
import java.io.InputStream;

public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
InputStream fin = new FileInputStream (keyReader.readLine());

keyReader.close();
ArrayListlist = new ArrayList();

///fileReader.read(); // удаляем первый символ

while (fin.available() > 0 ){

int a = fin.read();
if (a % 2 == 0) {
list.add(a);
}
}
Collections.sort(list);
for (Integer i: list) {
System.out.println(i);
}

// напишите тут ваш код c:/temp/txt.txt

fin.close();
}
}

С любым другим классом работает, кроме этого. Что не так?

task13.task1326

package com.javarush.task.task13.task1326;

/* 
Сортировка четных чисел из файла
*/


import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(new FileInputStream("c:/gek/1.txt"));
        ArrayList<Integer> list = new ArrayList<>();
        while (scanner.hasNext()) {
            int num = scanner.nextInt();
            if (num%2==0)
                list.add(num);
        }
        scanner.close();
        Collections.sort(list);
        for (Integer arr : list) {
            System.out.println(arr);
        }
    }
}


Что не так?
В файле это:
12
11
1374
156
112
354
9484
3112
1314
6565
64654654
641321324
64

Программа выдает:
12
64
112
156
354
1314
1374
3112
9484
64654654
641321324

Несколько раз по разному переписывал код и не принимает.