JavaEE学习日志持续更新----> 必看!JavaEE学习路线(a文章总汇)
文本排序
需求:将以下文本(in.txt)信息恢复顺序。
分析:
- 创建Map集合,key和value都是用String
- 创建BufferedReader对象,构造方法中传递FileReader对象
- 创建BufferedWriter对象,构造方法中传递FileWriter对象
- 使用BufferedReader对象readLine,以行的方式读取文本
- 对读取的每行文本进行切割,把序号和文本内容存储到一个String数组
- 把序号和文本内容存储到Map集合中(key会进行自然排序)
- 遍历Map集合,获取每一个键值对
- 使用BufferedWriter对象中的方法Write,把键值对拼接在一起写到内存缓冲区
- 写换行
- 释放资源
代码示例:
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文本中