В конце концов переписал этот код и сдал задачу, но так и не понял, где в этом решении ошибка?
public class Solution {
    public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader(args[0]);
//        FileReader fileReader = new FileReader("F:\\1.txt");
        char[] input= new char[256];
        StringBuffer stringBuffer = new StringBuffer();
        while (fileReader.ready()) {
            int s = fileReader.read(input);
            for (int i = 0; i < input.length; i++) {
                if (input[i] != 0) {
                    stringBuffer.append(input[i]);
                }
            }
        }
        String[] sum = stringBuffer.toString().split("\r\n");
        fileReader.close();
        Map<String, Double> map = new TreeMap<>();
        for (String s :
                sum) {
            String[] list = s.split(" ");
            double x = Double.parseDouble(list[1]);
            if (map.containsKey(list[0])) {
                map.merge(list[0], x, (a, b) -> a + b);
            } else {
                map.put(list[0], x);
            }
        }
        for (Map.Entry<String, Double> me :
                map.entrySet()) {
            System.out.println(me.getKey() + " " + me.getValue());
        }

    }
}