统计文件夹下所有.md文件的字数
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.regex.Pattern;
public class WordCounter {
private static final Pattern WORD_PATTERN = Pattern.compile("[a-zA-Z]+|[\u4e00-\u9fa5]");
private static long totalWords = 0;
public static void main(String[] args) throws IOException {
Path startPath = Paths.get("path/to/your/directory");
Files.walkFileTree(startPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith(".md")) {
totalWords += countWords(file);
}
return FileVisitResult.CONTINUE;
}
private long countWords(Path file) throws IOException {
long count = 0;
try (BufferedReader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
String line;
while ((line = reader.readLine()) != null) {
count += WORD_PATTERN.split(line).length;
}
}
return count;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
System.out.println("Visited directory: " + dir + ", total words: " + totalWords);
return FileVisitResult.CONTINUE;
}
});
System.out.println("Total words in all .md files: " + totalWords);
}
}