Уж и заглушку добавил, но видимо что-то ему совсем не нравится...
while (f1.available() !=0){}
17 строчка создает поток
30 закрывает
программа компилируется и работает корректно...package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream f1 = new FileInputStream(reader.readLine());
reader.close();
HashMap<Integer, String> m = new HashMap<>();
Scanner scanner = new Scanner(f1);
String buf;
Integer idBuf;
while (scanner.hasNext()){
idBuf = scanner.nextInt();
buf = scanner.next() + " " + scanner.next() + " " + scanner.next();
m.put(idBuf, buf);
}
while (f1.available() !=0){}
scanner.close();
f1.close();
for (Integer x: m.keySet()) {
if (x == Integer.parseInt(args[0])) System.out.println(x + " " + m.get(x));
}
}
}