写很多行单词,用BufferedReader读取并再用TreeSet将每个单词排序再用BufferedWriter写并放入文档中
时间: 2024-02-15 08:04:24 浏览: 106
好的,以下是一个简单的 Java 代码示例,可以实现你所描述的功能:
```java
import java.io.*;
import java.util.*;
public class SortWords {
public static void main(String[] args) {
// 读取文件并将单词存入 TreeSet 中进行排序
Set<String> words = new TreeSet<>();
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] lineWords = line.split("\\s+"); // 将一行文本按空格分割成单词数组
for (String word : lineWords) {
words.add(word); // 将单词添加到 TreeSet 中
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 将排序后的单词写入文件
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
for (String word : words) {
writer.write(word);
writer.newLine(); // 写入一个单词后换行
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用了 `BufferedReader` 读取文件,将每一行文本按空格分割成单词数组,并将单词添加到 `TreeSet` 中。由于 `TreeSet` 会自动对元素进行排序,因此最终得到的 `words` 集合中的元素就是按字母顺序排列的单词。
接着,我们使用 `BufferedWriter` 将排序后的单词写入文件。由于每个单词需要单独一行,因此在写入每个单词后,我们调用 `newLine()` 方法换行,以便下一个单词写入时能另起一行。
请注意,这只是一个简单的示例,实际应用中可能需要考虑更多的异常处理和错误情况。
阅读全文