写很多行单词,用BufferedReader读取并再用TreeSet将每个单词排序再用BufferedWriter写并放入文档中
时间: 2024-02-13 12:05:37 浏览: 61
Java基础入门_课后题答案_仅供参考.pdf
好的,我明白了。您的第一个问题是如何将一个文本文件中的单词按字母顺序排序,并将排序后的结果写入另一个文本文件中。我可以给您提供一个基本的代码框架,您可以根据您的具体要求进行修改。
```
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.TreeSet;
public class SortWords {
public static void main(String[] args) {
String inputFile = "input.txt"; // 输入文件名
String outputFile = "output.txt"; // 输出文件名
try {
// 读取输入文件
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
// 创建一个 TreeSet 对象,用于存储排序后的单词
TreeSet<String> words = new TreeSet<String>();
// 读取每一行文本,将单词加入 TreeSet 中
String line;
while ((line = reader.readLine()) != null) {
String[] wordArray = line.split("\\s+"); // 将每一行文本按空格分割成单词数组
for (String word : wordArray) {
words.add(word); // 将单词加入 TreeSet 中
}
}
// 关闭输入流
reader.close();
// 创建一个输出流,将排序后的单词写入输出文件
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
// 遍历 TreeSet 中的单词,将它们写入输出文件
for (String word : words) {
writer.write(word);
writer.newLine();
}
// 关闭输出流
writer.close();
System.out.println("排序完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码使用了 BufferedReader 和 BufferedWriter 类,可以对大型文本文件进行高效的读写操作。在读取每一行文本时,我们将文本按空格分割成单词数组,并将每个单词加入 TreeSet 中。由于 TreeSet 是有序的,它会自动对单词进行排序。最后,我们遍历 TreeSet 中的单词,将它们写入输出文件。
阅读全文