Java 如何计算txt文件中写入的字母数量

Java 如何计算txt文件中写入的字母数量,java,file,stream,filereader,Java,File,Stream,Filereader,我想知道是否有一种简单的方法来计算txt文件中的字母。 假设我有不同的txt文件,其中包含不同数量的字母,我想删除所有的txt文件,这些文件包含的字母数超过2000个。 此外,假设我一次处理一个txt。到目前为止,我已经试过了: FileReader reader2 = new FileReader("C:\\Users\\Internet\\eclipse-workspace\\test2.txt"); BufferedReader buff = new BufferedReader(read

我想知道是否有一种简单的方法来计算txt文件中的字母。 假设我有不同的txt文件,其中包含不同数量的字母,我想删除所有的txt文件,这些文件包含的字母数超过2000个。 此外,假设我一次处理一个txt。到目前为止,我已经试过了:

FileReader reader2 = new FileReader("C:\\Users\\Internet\\eclipse-workspace\\test2.txt");
BufferedReader buff = new BufferedReader(reader2)){

int counter = 0;

            while(buff.ready()){
                String aa = buff.readLine();
                counter = counter + aa.length();

            }
            System.out.println(counter);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
有没有更简单的方法或性能更好的方法? 把一个字符串中的所有字母读出来,然后扔掉,这似乎是浪费时间。 我是否应该使用InputStream并使用available()然后进行除法?另一方面,我看到available()可以计算所有内容,就像我在txt文件中按Enter键时,它会将字母数量增加+2。
谢谢您的回答。

您可以使用
文件。行
如下所示

counter = Files.lines(Paths.get("C:\\Users\\Internet\\eclipse-workspace\\test2.txt"))
        .mapToInt(String::length)
        .sum();

那怎么办?你是在数字符数,而不是字母数。这就是为什么您得到+2个字母(“\r\n”)。您应该从字符串中删除所有特殊字符,有很多方法可以做到这一点。我们是在处理UTF-8/16还是其他每个字符字节数可变的字符集?如果不是,只需使用File.size()并将其除以字符集中每个字符的字节数即可。但是,这也将计算每个字符-包括换行符(即
\r\n
,因此在windows上为2个字节)。您可以使用File.lines来计算换行和减法。谢谢。似乎我检查了Oracle文档中的Java 7而不是8。Java 7也有
.size()
,只是没有
.lines()
——所以如果您绝对不想计算换行,您需要另一种方法来计算换行。谢谢。这真的很有帮助。我没有考虑将字符串映射到它们的长度并将它们相加。有点像我拥有的,但看起来好多了。