Я работаю над проектом, в котором у меня есть файл, к которому программа обращается, чтобы получить информацию о различных преступлениях за несколько лет. Затем необходимо сложить преступление на основе типа и поместить его в файл. У меня есть первая часть, она обращается к файлу и суммирует количество преступлений по типу, но когда я открываю созданный файл, он распечатывается неправильно, и я не могу найти, что не так.
Вот что распечатывается в файле:
¬í sr java.util.HashMapÚÁÃ`Ñ F
loadFactorI thresholdxp? @ w
t Насильственные преступления Тоталср java.lang.Integerâ 8 ÷ ‡ 8 I valuexr java.lang.Number † ¬ • ”à‹ xp ¤Mt Rapesq ~ jt
Автомобиль Theftsq ~ {™ t Нападения при отягчающих обстоятельствах ~ komt Homicidesq ~ t Robberysq ~ N
t Нежилой Burglarysq ~ kÿt Жилой Burglarysq ~ â ~ t Преступления собственности Totalsq ~ ïit Theftsq ~: cx
С помощью system.out.println он печатает:
{Всего преступлений с применением насилия = 42061, Изнасилования = 1898, Угона транспортных средств = 97177, Нападение с отягчающими обстоятельствами = 27523, Убийство = 399, Ограбление = 19981, Кража с нежилым имуществом = 27647, Кража со взломом = 58238, Всего преступлений против собственности = 454505, Кража = 342627}
Системная распечатка - это то, что я хотел бы показать в файле.
public class CSVReader {
public static void main(String[] args) throws FileNotFoundException {
String csvFile = "C:\\Users\\Cassie\\Desktop\\mod04_dataset.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
HashMap<String, Integer> map = new HashMap<>();
try {
br = new BufferedReader(new FileReader(csvFile));
br.readLine();
while ((line = br.readLine()) != null) {
String[] data = line.split(cvsSplitBy);
System.out.println(data[2] + " " + data[3]);
if (map.containsKey(data[2])) {
Integer a = map.get(data[2]);
map.put(data[2], a + Integer.parseInt(data[3]));
}
else {
map.put(data[2], Integer.parseInt(data[3]));
}
}
FileOutputStream f = new
FileOutputStream("hashmap.ser");
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(map);
System.out.println(map);
s.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}