Java文件排序(Map集合,字符缓冲流)

JavaEE学习日志持续更新----> 必看!JavaEE学习路线(a文章总汇)

文本排序

需求:将以下文本(in.txt)信息恢复顺序。
在这里插入图片描述
分析:

  1. 创建Map集合,key和value都是用String
  2. 创建BufferedReader对象,构造方法中传递FileReader对象
  3. 创建BufferedWriter对象,构造方法中传递FileWriter对象
  4. 使用BufferedReader对象readLine,以行的方式读取文本
  5. 对读取的每行文本进行切割,把序号和文本内容存储到一个String数组
  6. 把序号和文本内容存储到Map集合中(key会进行自然排序)
  7. 遍历Map集合,获取每一个键值对
  8. 使用BufferedWriter对象中的方法Write,把键值对拼接在一起写到内存缓冲区
  9. 写换行
  10. 释放资源

代码示例:

public class Demo03 {
    public static void main(String[] args) throws IOException {
        //1.创建Map集合,key和value都是用String
        Map<String, String> map = new HashMap<>();
        //2.创建BufferedReader对象,构造方法中传递FileReader对象
        BufferedReader br = new BufferedReader(new FileReader("day11\\in.txt"));
        //3.创建BufferedWriter对象,构造方法中传递FileWriter对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("day11\\out.txt"));
        //4.使用BufferedReader对象readLine,以行的方式读取文本
        String line;
        while ((line = br.readLine()) != null) {
            //5.对读取的每行文本进行切割,把序号和文本内容存储到一个String数组
            String[] arr = line.split("\\.");
            //6.把序号和文本内容存储到Map集合中(key会进行自然排序)
            map.put(arr[0],arr[1]);
        }
        //7.遍历Map集合,获取每一个键值对
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            String key = entry.getKey();
            String value = entry.getValue();
            //8.使用BufferedWriter对象中的方法Write,把键值对拼接在一起写到内存缓冲区
            bw.write(key+"="+value);
            bw.newLine();
        }
        //10.释放资源
        bw.close();
        br.close();

    }
}

结果:输出到out.txt文本中
在这里插入图片描述

发布了36 篇原创文章 · 获赞 44 · 访问量 6702

猜你喜欢

转载自blog.csdn.net/Sakuraaaaaaa/article/details/104442588