import java.io.*;
import java.util.Map;
import java.util.TreeMap;

public class Test02 {
    public static void main(String[] args) throws IOException {
        // 使用 TreeMap 来存储数据,键是行号,值是原始行内容
        // TreeMap 会自动根据键(行号)进行排序
        Map<Integer, String> map = new TreeMap<>();

        // 1. 读取文件并存入 TreeMap
        // 使用 try-with-resources 确保 BufferedReader 自动关闭
        try (BufferedReader br = new BufferedReader(new FileReader("myIO/csb.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                if (!line.isEmpty()) {
                    // 解析行号作为键
                    int key = Integer.parseInt(line.split("\\\\.")[0]);
                    // 将行号和原始行存入 map
                    map.put(key, line);
                }
            }
        }

        // TreeMap 已经自动排好序,直接打印它的值集合
        System.out.println(map.values());

        // 2. 将排序后的结果写入新文件
        // 同样使用 try-with-resources 确保 BufferedWriter 自动关闭
        try (BufferedWriter bw = new BufferedWriter(new FileWriter("myIO/result.txt"))) {
            // 遍历 TreeMap 的值集合(已经按键排序)
            for (String str : map.values()) {
                bw.write(str);
                bw.newLine();
            }
        }
    }
}