从JFileChooser Java检索文件中的行数

从JFileChooser Java检索文件中的行数,java,swing,character,line,jfilechooser,Java,Swing,Character,Line,Jfilechooser,在Java中有没有办法知道所选文件的行数? 方法chooser.getSelectedFile().length()是我到目前为止看到的唯一方法,但我不知道如何找到文件中的行数(甚至是字符数) 非常感谢您的帮助,谢谢 --更新-- 这是我尝试过的,但是最后读取的变量数是totLength的

在Java中有没有办法知道所选文件的行数? 方法
chooser.getSelectedFile().length()
是我到目前为止看到的唯一方法,但我不知道如何找到文件中的行数(甚至是字符数)

非常感谢您的帮助,谢谢

--更新--


这是我尝试过的,但是最后读取的变量数是totLength的<,我不知道File.length()返回的字节数是文件内容以外的。。如您所见,这里我尝试读取字符。

您可以使用
JFileChooser
选择一个文件,然后使用文件读取器打开该文件,当您在该文件上迭代时,只需增加一个计数器,如下所示

while (file.hasNextLine()) {
    count++;
    file.nextLine();
}

您可以使用
JFileChooser
选择一个文件,然后使用文件读取器打开文件,当您在文件上迭代时,只需增加一个计数器,如下所示

while (file.hasNextLine()) {
    count++;
    file.nextLine();
}
脏兮兮的:

long count =  Files.lines(Paths.get(chooser.getSelectedFile())).count();
你会发现这个小方法很方便。它为您提供了忽略计算文件中的空行的选项:

public long fileLinesCount(final String filePath, boolean... ignoreBlankLines) {
    boolean ignoreBlanks = false;
    long count = 0;
    if (ignoreBlankLines.length > 0) {
        ignoreBlanks = ignoreBlankLines[0];
    }
    try {
        if (ignoreBlanks) {
            count =  Files.lines(Paths.get(filePath)).filter(line -> line.length() > 0).count();
        }
        else {
            count =  Files.lines(Paths.get(filePath)).count();
        }
    }
    catch (IOException ex) { 
        ex.printStackTrace(); 
    }
    return count;
}
脏兮兮的:

long count =  Files.lines(Paths.get(chooser.getSelectedFile())).count();
你会发现这个小方法很方便。它为您提供了忽略计算文件中的空行的选项:

public long fileLinesCount(final String filePath, boolean... ignoreBlankLines) {
    boolean ignoreBlanks = false;
    long count = 0;
    if (ignoreBlankLines.length > 0) {
        ignoreBlanks = ignoreBlankLines[0];
    }
    try {
        if (ignoreBlanks) {
            count =  Files.lines(Paths.get(filePath)).filter(line -> line.length() > 0).count();
        }
        else {
            count =  Files.lines(Paths.get(filePath)).count();
        }
    }
    catch (IOException ex) { 
        ex.printStackTrace(); 
    }
    return count;
}

我必须在线上做一些事情,但只有在我知道行数之后。有了这个解决方案,我应该做两倍的同样的工作。。File类的.length()的问题不仅返回文件内容的字节,而且还返回我不知道的其他内容,因此如果我尝试以字节为单位计算字符,我将有不同的值..因此
File.nextLine()
返回字符串,可以取
File.nextLine().lenght()
并将其添加到计数器中,或者可以将其添加到
数组列表中
,这样您就可以知道每行中的字符数。希望有帮助。我可以改变答案,如果它能帮助你的话
file.nextLine()
返回由这个抽象路径名表示的文件长度。我必须在知道行数之后,在行上做一些事情。有了这个解决方案,我应该做两倍的同样的工作。。File类的.length()的问题不仅返回文件内容的字节,而且还返回我不知道的其他内容,因此如果我尝试以字节为单位计算字符,我将有不同的值..因此
File.nextLine()
返回字符串,可以取
File.nextLine().lenght()
并将其添加到计数器中,或者可以将其添加到
数组列表中
,这样您就可以知道每行中的字符数。希望有帮助。我可以改变答案,如果它能帮助你的话
file.nextLine()
返回由这个抽象路径名表示的文件长度。该死,这对我来说有点深,我先试试“简单”的方法。如果我出不去,我也会试试这个,虽然对我来说有点复杂,Java不太好:(该死,这对我来说真的有点深,我会先试试“简单”的东西。如果我出不去,我也会试试这个,虽然对我来说有点复杂,Java不太好:(