当前位置: 首页 > 知识库问答 >
问题:

如何让我的HashMap正确打印到文件中

潘彦
2023-03-14

我正在做一个项目,我有一个文件,程序可以访问该文件以获取不同年份的不同犯罪信息。然后它需要根据类型添加犯罪并将其放入文件中。我有第一部分,它确实访问了文件并按类型添加了犯罪金额,但当我打开创建的文件时,它没有正确打印出来,我似乎找不到问题所在。

这是打印在文件上的内容:

ísr爪哇。util。HashMapÚÁÃ`F loadFactorI thresholdxp?@全爪哇暴力犯罪。lang.Integer–

使用系统。出来打印它打印:

{暴力犯罪总数=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();
                }

            }
        }
    }
}

共有2个答案

匡晟
2023-03-14

您应该使用PrintWriter,因为您正在输出二进制数据

卫深
2023-03-14

当您调用System.out.println(map);时,您会看到map.toString()的结果。如果这是您希望在文件中包含的内容,您可以这样做:

FileOutputStream f = new FileOutputStream("hashmap.ser");  
f.write(map.toString().getBytes());
System.out.println(map);
f.close();
 类似资料:
  • 嘿,我想打印出飞机存储。飞机存储包含字符串和航班的哈希图。这就是flight.add/print进入主端的地方。但我现在希望航空公司和航班并行打印,所以我把航空公司商店和我试图打印出PlaneStore以及航空公司,但我得到的只是一个内存地址,有人能帮我吗?

  • 问题内容: 我试图用Python写出xml文件。问题在于它们总是在一行中生成。我希望能够轻松地引用它们,因此,如果我真的很希望能够将文件干净地写出。 这就是我得到的: 这是我想看到的: 问题答案: 您可以使用from的功能来做到这一点: 想法是将您的字符串打印出来,使用minidom进行解析,然后使用函数再次将其转换为XML 。 资料来源:http : //pymotw.com/2/xml/etr

  • 问题内容: 我有一个JSON文件,我想把它打印成一团糟。在Python中最简单的方法是什么? 我知道PrettyPrint带有一个“对象”,我认为它可以是一个文件,但是我不知道如何传递文件。仅使用文件名是行不通的。 问题答案: 该模块已经实现了一些基本的漂亮打印,其参数指定缩进多少空格: 要解析文件,请使用:

  • 问题是如何使用方法在HashMap中pritn值=1的图书?在代码中,ive删除了数组中的书籍,这样代码就可以更短。

  • 问题内容: 我有一个JSON文件,我想把它弄得一团糟-在python中最简单的方法是什么?我知道PrettyPrint带有一个“对象”,我认为它可以是一个文件,但是我不知道如何传递文件-仅使用文件名不起作用。 问题答案: 该模块已经使用参数实现了一些基本的漂亮打印: 要解析文件,请使用json.load():