緩衝流07_練習_對文本的內容進行排序

package com.itheima.demo01.BufferedStream;java

import java.io.*;
import java.util.HashMap;code

/*對象

練習:
    對文本的內容進行排序
    按照(1,2,3....)順序排序
分析:
    1.建立一個HashMap集合對象,能夠:存儲每行文本的序號(1,2,3,..);value:存儲每行的文本
    2.建立字符緩衝輸入流對象,構造方法中綁定字符輸入流
    3.建立字符緩衝輸出流對象,構造方法中綁定字符輸出流
    4.使用字符緩衝輸入流中的方法readline,逐行讀取文本
    5.對讀取到的文本進行切割,獲取行中的序號和文本內容
    6.把切割好的序號和文本的內容存儲到HashMap集合中(key序號是有序的,會自動排序1,2,3,4..)
    7.遍歷HashMap集合,獲取每個鍵值對
    8.把每個鍵值對,拼接爲一個文本行
    9.把拼接好的文本,使用字符緩衝輸出流中的方法write,寫入到文件中
    10.釋放資源

*/
public class Demo05Test {排序

public static void main(String[] args) throws IOException {
    //1.建立一個HashMap集合對象,能夠:存儲每行文本的序號(1,2,3,..);value:存儲每行的文本
    HashMap<String,String> map = new HashMap<>();
    //2.建立字符緩衝輸入流對象,構造方法中綁定字符輸入流
    BufferedReader br = new BufferedReader(new FileReader("10_IO\\in.txt"));
    //3.建立字符緩衝輸出流對象,構造方法中綁定字符輸出流
    BufferedWriter bw = new BufferedWriter(new FileWriter("10_IO\\out.txt"));
    //4.使用字符緩衝輸入流中的方法readline,逐行讀取文本
    String line;
    while((line = br.readLine())!=null){
        //5.對讀取到的文本進行切割,獲取行中的序號和文本內容
        String[] arr = line.split("\\.");
        //6.把切割好的序號和文本的內容存儲到HashMap集合中(key序號是有序的,會自動排序1,2,3,4..)
        map.put(arr[0],arr[1]);
    }

    //7.遍歷HashMap集合,獲取每個鍵值對
    for(String key : map.keySet()){
        String value = map.get(key);
        //8.把每個鍵值對,拼接爲一個文本行
        line = key + "." + value;
        //9.把拼接好的文本,使用字符緩衝輸出流中的方法write,寫入到文件中
        bw.write(line);
        bw.newLine();//寫換行
    }
    //10.釋放資源
    bw.close();
    br.close();
}

}資源

相關文章
相關標籤/搜索