神奇的小糖 2020-12-02 23:21 采纳率: 0%
浏览 11

使用HashMap对无序文章进项排序

如果在每一行前面添加不同的空格,不会根据key值默认排序

/*源文件
2、创建FileInputStream对象,构造方法中绑定目的地(路径)
    9、创建缓冲流对象BufferedInputStream,构造方法中传递上一步准备的FileInputStream对象,提高FileInputStream对象效率
    3、使用BufferedInputStream对象中的read方法,把数据读取到缓冲区中
    1、关闭FileIntputStream流对象,释放资源
   6、创建FileOutputStream对象,构造方法中绑定目的地(路径)
 4、创建缓冲流对象BufferedOutputStream,构造方法中传递上一步准备的FileOutputStream对象,提高FileOutputStream对象效率
    7、使用BufferedOutputStream对象中的write方法,把数据写入到缓冲区中
  8、使用flush方法将数据刷新到硬盘文件中
 5、关闭FileOutputStream流对象,释放资源

*/

 public static void main(String[] args) throws IOException {
        //1、创建流对象,并创建文件
        BufferedWriter bfw = new BufferedWriter(new FileWriter("pp.txt"));
        BufferedReader bfr = new BufferedReader(new FileReader("p.txt"));
        //2、不使用已有文件,在创建的文件中写入内容
    /*    bfw.write("   " +
                "    2、创建FileInputStream对象,构造方法中绑定目的地(路径)\n" +
                "    0、创建缓冲流对象BufferedInputStream,构造方法中传递上一步准备的FileInputStream对象,提高FileInputStream对象效率\n" +
                "    3、使用BufferedInputStream对象中的read方法,把数据读取到缓冲区中\n" +
                "    1、关闭FileIntputStream流对象,释放资源\n" +
                "     6、创建FileOutputStream对象,构造方法中绑定目的地(路径)\n" +
                "     4、创建缓冲流对象BufferedOutputStream,构造方法中传递上一步准备的FileOutputStream对象,提高FileOutputStream对象效率\n" +
                "     7、使用BufferedOutputStream对象中的write方法,把数据写入到缓冲区中\n" +
                "     8、使用flush方法将数据刷新到硬盘文件中\n" +
                "     10、关闭FileOutputStream流对象,释放资源");

        bfw.flush();*/
        //3、写入完成,读取并将其分割后的第一个作为key,第二个内容作为value存储在HashMap中
        String line;
        HashMap<String, String> map = new HashMap<>();
        while((line = bfr.readLine())!= null){
            String[] split = line.split("\\、");
//            System.out.println(split.length);
            String num = split[0];
//            System.out.println(split[0]+","+split[1]);
            String content = split[1];
            map.put(num,content);
        }

        //4、存储完成且HashMap是自动排序的,遍历即可,将序号和内容进行拼接组成新的字符串,再使用bfw.writer写入
        for(String key : map.keySet()){
            String value = map.get(key);
            String newString = (key+"、"+value);
            System.out.println(newString);
            bfw.write(newString);
            bfw.newLine();
        }

        bfr.close();
        bfw.close();
    }


遍历结果如图

在前面添加不同的空格数时,遍历的结果也不一样。

  • 写回答

3条回答 默认 最新

  • yulouchunqiu 2020-12-03 22:38
    关注

    我提供个思路哈,你可以试试  TreeMap

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看