Java实现统计文件夹下所有文件的字数

 更新时间:2024年03月25日 09:33:22   作者:林小果呀  
这篇文章主要为大家详细介绍了如何使用Java实现统计文件夹下所有文件的字数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

统计文件夹下所有.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"); // replace with 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);
    }
}

方法补充

除了上文的方法,小编还为大家整理了其他实现统计文件字数的方法,希望对大家有所帮助

Java统计文档的字数

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class WordCount {
    public static void main(String[] args) {
        // 读取文档路径
        String filePath = "path/to/your/document.txt";
        
        try {
            // 创建文件对象
            File file = new File(filePath);
            
            // 创建Scanner对象,用于读取文件内容
            Scanner scanner = new Scanner(file);
            
            // 统计字符个数的变量
            int count = 0;
            
            // 逐行读取文件内容,并统计字符个数
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                count += line.replaceAll("\\s+", "").length();
            }
            
            // 输出统计结果
            System.out.println("文档的字数是:" + count);
            
            // 关闭Scanner对象
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Java获取文件字数

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class WordCount {
    public static void main(String[] args) {
        String filename = "example.txt"; // 替换为要统计字数的文件路径

        int wordCount = 0;
        int spaceCount = 0;
        int punctuationCount = 0;

        try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
            String line;
            while ((line = reader.readLine()) != null) {
                String[] words = line.split("\\s+");
                wordCount += words.length;
                spaceCount += words.length - 1;
                
                for (char c : line.toCharArray()) {
                    if (Character.isWhitespace(c)) {
                        spaceCount++;
                    } else if (Character.isLetterOrDigit(c) || Character.isSpaceChar(c)) {
                        // do nothing
                    } else {
                        punctuationCount++;
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("字数: " + wordCount);
        System.out.println("空格数: " + spaceCount);
        System.out.println("标点符号数: " + punctuationCount);
    }
}

用python统计一个文件夹下的所有文件的中文字数

import os

DirPath = 'D:/下载/docs'
resultArray = []
listCount = 0
content = ''
resultCount = 0


def check_contain_chinese(check_str, fileName):
    countResult = 0
    for ch in check_str:
        if u'\u4e00' <= ch <= u'\u9fff':
            countResult += 1
    resultArray.append(countResult)
    print(str(fileName) + "文件的中文字数是:" + str(countResult) + '\n')


if __name__ == "__main__":
    for item in os.listdir(DirPath):
        print(DirPath + '/' + item)
        listCount += 1
        f = open(DirPath + '/' + item, 'r', encoding='utf-8')
        content = f.read()
        check_contain_chinese(content, item)

    for num in resultArray:
        resultCount += num
    print("累计文件个数:" + str(listCount) + "个")
    print("累计中文字符:" + str(resultCount) + "个")

到此这篇关于Java实现统计文件夹下所有文件的字数的文章就介绍到这了,更多相关Java统计文件字数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 改造ayui表格组件实现多重排序

    Java 改造ayui表格组件实现多重排序

    layui 的表格组件目前只支持单列排序,在实际应用中并不能很好的支撑我们的业务需求。今天一时手痒,决定改造一番以支持多重排序。
    2021-04-04
  • 详解Java实现缓存(LRU,FIFO)

    详解Java实现缓存(LRU,FIFO)

    本篇文章主要介绍了详解Java实现缓存(LRU,FIFO) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • mybatis-plus生成mapper扩展文件的方法

    mybatis-plus生成mapper扩展文件的方法

    这篇文章主要介绍了mybatis-plus生成mapper扩展文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • idea创建maven父子工程导致子工程无法导入父工程依赖

    idea创建maven父子工程导致子工程无法导入父工程依赖

    创建maven父子工程时遇到一个问题,本文主要介绍了idea创建maven父子工程导致子工程无法导入父工程依赖,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Spring Bean获取方式的实例化方式详解

    Spring Bean获取方式的实例化方式详解

    工作中需要对一个原本加载属性文件的工具类修改成对数据库的操作当然,ado层已经写好,但是需要从Spring中获取bean,然而,工具类并没有交给Spring来管理,所以需要通过方法获取所需要的bean。于是整理了Spring获取bean的几种方法
    2023-03-03
  • Spring声明式事务注解之@EnableTransactionManagement解析

    Spring声明式事务注解之@EnableTransactionManagement解析

    这篇文章主要介绍了Spring声明式事务注解之@EnableTransactionManagement解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 让Java程序自动重启的实现方法(推荐)

    让Java程序自动重启的实现方法(推荐)

    下面小编就为大家带来一篇让Java程序自动重启的实现方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • JMETER用户变量作用域测试流程

    JMETER用户变量作用域测试流程

    这篇文章主要介绍了JMETER用户变量作用域测试流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 关于mybatis一对一查询一对多查询遇到的问题

    关于mybatis一对一查询一对多查询遇到的问题

    这篇文章主要介绍了关于mybatis一对一查询,一对多查询遇到的错误,接下来是对文章进行操作,要求查询全部文章,并关联查询作者,文章标签,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • IDEA插件开发注册菜单之向主菜单注册菜单项目

    IDEA插件开发注册菜单之向主菜单注册菜单项目

    这篇文章主要介绍了IDEA插件开发注册菜单之向主菜单注册菜单项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论