Понятное дело, решу сейчас другим способом, но блин, работает же все! Или я не прав?
package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws IOException {
//Считывание параметра
int id = Integer.parseInt(args[0]);
//Считывание с консоли файла
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
//Считывание файла потоком ввода и заполнение листа байтами в виде интов
FileInputStream fileInputStream = new FileInputStream(fileName);
BufferedInputStream buffer = new BufferedInputStream(fileInputStream);
List<Integer> list = new ArrayList<>();
while (buffer.available() > 0) {
list.add(buffer.read());
}
fileInputStream.close();
//Заполнение массива строк
List<String> stringlist= new ArrayList<>();
String s = "";
for (int i=0; i<list.size(); i++) {
if (list.get(i) != 10) {
int x = list.get(i);
s += (char) x;
}
if (list.get(i) == 10 || i == list.size()-1) {
stringlist.add(s);
s = "";
}
}
//Заполение карты id как ключ остальное значение
Map<Integer, String> map = new HashMap<>();
for (int i=0; i < stringlist.size(); i++) {
char ch = stringlist.get(i).charAt(0);
int key = Integer.parseInt(Character.toString(ch));
String value = stringlist.get(i).substring(1);
map.put(key, value);
}
//Вывод
System.out.println(id + "" + map.get(id));
/* Содержимое файла
1 Space Shuttle 1000.00 1
2 Rocket Science 777.00 33
3 Nuclear Battery 300.33 900
*/
/* То что в консоли в итоге при параметре 3
3 Nuclear Battery 300.33 900
*/
}
}