如何使用java计算csv中的总行数

Dee*_*hah -1 java opencsv

我有一个 csv 文件。我想用 Java 编写一个函数,它会告诉我 csv 中有多少行。有人可以帮助我实现这一目标。

csv有以下格式:

"Time","Actual","Time","Expected","Time","Status"
"2012-09-01 00:00:00",580.543,"2012-09-01 00:00:00",570.761,"2012-09-01 01:00:00",0
"2012-09-01 01:00:00",646.703,"2012-09-01 01:00:00",672.926,"2012-09-01 02:00:00",0
"2012-09-01 02:00:00",680.705,"2012-09-01 02:00:00",687.784,"2012-09-01 03:00:00",0
"2012-09-01 03:00:00",661.968,"2012-09-01 03:00:00",702.436,"2012-09-01 04:00:00",0
Run Code Online (Sandbox Code Playgroud)

Suk*_*ala 8

以下函数计算任何文件中的行数...

public int count(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();
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 仅当文件以 newLine 字符结尾时才有效,否则计数减 1 (3认同)