使用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();
    }


遍历结果如图

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

查看全部
zytbv
神奇的小糖
2020/12/02 23:21
  • java
  • 点赞
  • 收藏
  • 回答
    私信

2个回复