写很多行单词,用BufferedReader读取并再用TreeSet将每个单词排序再用BufferedWriter写并放入文档中
时间: 2024-02-15 08:04:21 浏览: 92
好的,以下是一个Java程序示例,可以实现您所描述的功能:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.TreeSet;
public class WordSorter {
public static void main(String[] args) {
String inputFilePath = "input.txt"; // 输入文件路径
String outputFilePath = "output.txt"; // 输出文件路径
try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath))) {
String line;
TreeSet<String> words = new TreeSet<>();
// 逐行读取输入文件,并将每行拆分为单词
while ((line = reader.readLine()) != null) {
String[] lineWords = line.split("\\W+");
// 将单词添加到TreeSet中
words.addAll(Arrays.asList(lineWords));
}
// 逐个写入单词到输出文件
for (String word : words) {
writer.write(word);
writer.newLine(); // 换行
}
System.out.println("单词排序完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该程序会从 `input.txt` 文件中读取文本内容,并将每个单词添加到一个 `TreeSet` 集合中。最后,程序将集合中的单词按照字典序排序,并依次写入 `output.txt` 文件中。注意,程序中使用了 `BufferedReader` 和 `BufferedWriter` 类来实现高效的文件读写操作。
阅读全文