文章目录
思路操作步骤:**先看一下最初的文件**Code**结果:**
????.newLine();
目的是将文件按照 “ . ” 前面的数字对段落进行排序
思路
数据结构选HashMap 用java IO自带的字符缓冲流
操作步骤:
1.先创建BufferedReader和BufferedWriter对象
2.用readLine()方法获取一个字符串,规则是\n或\r或\n\r为止
3.分割字符串为 "."前数字一部分 "."后内容一部分
4.存入HashMap,
5.遍历HashMap中的键,用此找到value
6.合并,写入目标文件
先看一下最初的文件
Code
package TestFile
;
import java
.io
.BufferedReader
;
import java
.io
.BufferedWriter
;
import java
.io
.FileReader
;
import java
.io
.FileWriter
;
import java
.io
.IOException
;
import java
.util
.HashMap
;
public class sortx {
public static void main(String
[] args
) throws IOException
{
HashMap
<String,String> m
= new HashMap<>();
BufferedReader br
= new BufferedReader(new FileReader("C:\\Users\\30978\\Desktop\\1.txt"),1024);
BufferedWriter bw
= new BufferedWriter(new FileWriter("C:\\Users\\30978\\Desktop\\2.txt"),1024);
String str
;
while((str
= br
.readLine())!=null
) {
String
[] strs
= str
.split("\\.");
m
.put(strs
[0], strs
[1]);
}
for(String a
:m
.keySet()) {
String value
= m
.get(a
);
str
= a
+"."+value
;
bw
.write(str
);
bw
.newLine();
}
bw
.close();
br
.close();
}
}
结果:
????
问题来了,我们没有进行sort一类的操作,怎么就有序了呢?
查一下JDK发现 HashMap的底层是一种似“桶”的结构
所有就会自动“排序”,想了解桶是什么可以百度一下桶排序。
.newLine();
换行是怎么回事呢 可以找一下…println();的源码