用java写一个代码,要求对大文本文件进行关键词切割,并输出为各个文件
时间: 2024-01-24 07:17:32 浏览: 69
以下是一个Java代码示例,用于对大文本文件进行关键词切割,并将结果输出为各个文件:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
public class KeywordSplitter {
public static void main(String[] args) {
// 定义输入文件路径和输出目录路径
String inputFilePath = "input.txt";
String outputDirectoryPath = "output";
// 定义关键词集合
Set<String> keywords = new HashSet<>();
keywords.add("keyword1");
keywords.add("keyword2");
keywords.add("keyword3");
// 读取输入文件并逐行进行关键词切割
try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath))) {
String line;
while ((line = reader.readLine()) != null) {
// 对当前行进行关键词切割
Set<String> matchedKeywords = new HashSet<>();
for (String keyword : keywords) {
if (line.contains(keyword)) {
matchedKeywords.add(keyword);
}
}
// 将匹配到的关键词写入对应的输出文件
for (String matchedKeyword : matchedKeywords) {
String outputFilePath = outputDirectoryPath + "/" + matchedKeyword + ".txt";
try (FileWriter writer = new FileWriter(outputFilePath, true)) {
writer.write(line + System.lineSeparator());
} catch (IOException e) {
e.printStackTrace();
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该代码中首先定义了输入文件路径和输出目录路径,以及需要进行关键词切割的关键词集合。然后通过`BufferedReader`逐行读取输入文件,并在每行中查找匹配的关键词。如果匹配到了某个关键词,则将该行写入对应的输出文件中。需要注意的是,如果输出文件已经存在,则将新内容追加到文件末尾。
阅读全文