计算文件的行数

时间:2015-07-16 06:51:16

标签: java lines file-handling

我有一个关于Java的问题:

我正在尝试创建一个遍历文件并检查某些内容的程序,但为此我需要一些东西来计算这些行,有没有人知道这样做的好方法?

之前我从未使用过文件,所以我真的不知道。 此外,我没有显示代码,因为我不知道该怎么做。

5 个答案:

答案 0 :(得分:2)

通过互联网搜索,您可以自己找到这个。 但是,这是我使用的代码:

    public static int countLines(String filename) throws IOException {
        InputStream is = new BufferedInputStream(new FileInputStream(filename));
        try {
            byte[] c = new byte[1024];
            int count = 0;
            int readChars = 0;
            boolean empty = true;
            while ((readChars = is.read(c)) != -1) {
                empty = false;
                for (int i = 0; i < readChars; ++i) {
                    if (c[i] == '\n') {
                        ++count;
                    }
                }
            }
            return (count == 0 && !empty) ? 1 : count;
        } 
        finally {
            is.close();
        }
    }

我希望它适合你。

<强>更新

这对你来说应该更容易。

BufferedReader reader = new BufferedReader(new FileReader(file));
int lines = 0;
while (reader.readLine() != null) lines++;
reader.close();
System.out.println(lines);

答案 1 :(得分:1)

在Java 8中:

long lineCount = 0;

try (Stream<String> lines = Files.lines(Paths.get(filename))){
    lineCount = lines.count();
} catch (final IOException i) {
    // Handle exception.
}

答案 2 :(得分:0)

你可以试试这个,在行变量中你会得到行数。

 public String getFileStream(final String inputFile) {
            int lines = 0;
            Scanner s = null;

            try {
                s = new Scanner(new BufferedReader(new FileReader(inputFile)));
                while (s.hasNext()) {
                   lines++;
                }
            } catch (final IOException ex) {
                ex.printStackTrace();
            } finally {
                if (s != null) {
                    s.close();
                }
            }
            return result;
    }

答案 3 :(得分:0)

只需你可以这样做: -

        BufferedReader br = new BufferedReader(new FileReader(FILEPATH));
        int lineCount = 0;
        while(br.readLine() != null)
            lineCount++;
        System.out.println(lineCount);

BufferedReader类提供了readLine(),它逐行读取文本,因此可用于获取行数。

答案 4 :(得分:0)

你可以做到:

public static void main(String[] args) {

    int linecount = 0;

    try {
        // Open the file
        FileInputStream fstream = new FileInputStream("d:\\data.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                fstream));
        String strLine;
        // Read File Line By Line
        while ((strLine = br.readLine()) != null) {
            if (strLine.trim().length() > 0) { // check for blank line
                linecount++;
            } else {
                continue;
            }
        }

        System.out.println("Total no. of lines = " + linecount);
        // Close the input stream
        br.close();
    } catch (Exception e) {
        // TODO: handle exception
    }

}