用java语言写一段程序实现从文本文件读入数据,并统计文件中指定字符串出现的次数,然后将统计结果写到另外一个文本文件中
时间: 2024-03-23 22:42:12 浏览: 58
Java编程实现统计一个字符串中各个字符出现次数的方法
好的,以下是Java程序代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class StringCounter {
public static void main(String[] args) {
String inputFile = "input.txt"; // 输入文件路径
String outputFile = "output.txt"; // 输出文件路径
String target = "hello"; // 指定字符串
int count = 0; // 统计指定字符串出现的次数
try (BufferedReader reader = new BufferedReader(new FileReader(inputFile))) {
String line;
while ((line = reader.readLine()) != null) {
count += countMatches(line, target); // 统计指定字符串在当前行中出现的次数
}
} catch (IOException e) {
e.printStackTrace();
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
writer.write(String.valueOf(count)); // 将统计结果写入输出文件
} catch (IOException e) {
e.printStackTrace();
}
}
// 统计字符串 str 中子串 sub 出现的次数
private static int countMatches(String str, String sub) {
if (str == null || str.isEmpty() || sub == null || sub.isEmpty()) {
return 0;
}
int count = 0;
int index = 0;
while ((index = str.indexOf(sub, index)) != -1) {
count++;
index += sub.length();
}
return count;
}
}
```
在程序中,我们使用 `BufferedReader` 和 `FileReader` 读取输入文件中的每一行,并在每一行中统计指定字符串的出现次数。使用 `BufferedWriter` 和 `FileWriter` 将统计结果写入输出文件中。`countMatches` 方法用于统计字符串中子串出现的次数。
在使用时,只需将输入文件路径、输出文件路径和指定字符串修改为需要的值即可。
阅读全文