如何计算文本文件的行数

时间:2014-07-16 16:17:38

标签: java while-loop

import java.io.*;
import java.util.*;

public class Practices {

    public static void main(String[] args) throws FileNotFoundException
    {

这是我的文字档案:

成为或不成为是 问题
那么现在呢 就这样吧

Scanner input =new Scanner(new File("C:/Users/Charlie/workspace/Summerexercises/src/hamlet.txt"));
            int countwords=0;
            int countlines=0;
            int countchar=0;

            while(input.hasNext())
            {
                String word = input.next();
                countwords++;
            }
            System.out.println("total words= "+ countwords);

这是while循环,它计算行数,但不能正常工作

while(input.hasNextLine())
                {
                    String lines= input.nextLine();
                    countlines++;
                }
                System.out.println("total lines= "+ countlines);




                input.close();
              }
    }

4 个答案:

答案 0 :(得分:1)

**此循环将计算行数**

int count = 0;
while (scanner.hasNextLine()) {
    count++;
    scanner.nextLine();
}

答案 1 :(得分:1)

或者您可以使用LineNumberReader

LineNumberReader  lineNumberReader = new LineNumberReader(new FileReader(new File("C:/Users/Charlie/workspace/Summerexercises/src/hamlet.txt")));
lineNumberReader.skip(Long.MAX_VALUE);
System.out.println(lnr.getLineNumber());
lineNumberReader.close();

来源:http://www.technicalkeeda.com/java/how-to-count-total-number-of-lines-of-file-using-java

答案 2 :(得分:0)

您必须再次从文件的开头开始。到第一个循环结束时,您将指向EOF,因此在第二个循环中不计算任何行。尝试注释掉第一个循环并运行该程序。

答案 3 :(得分:0)

在第一个循环中,您将使用所有扫描仪内容,第二个循环永远不会执行。这样做:

Scanner input =new Scanner(new File("C:/Users/Charlie/workspace/Summerexercises/src/hamlet.txt"));
int countwords=0;
int countlines=0;
int countchar=0;
while(input.hasNext())
{
    String word = input.next();
    countwords++;
}
System.out.println("total words= "+ countwords);
input.close();
input =new Scanner(new File("C:/Users/Charlie/workspace/Summerexercises/src/hamlet.txt"));
while(input.hasNextLine())
{
    String lines= input.nextLine();
    countlines++;
}
System.out.println("total lines= "+ countlines);
input.close();