Count the lines of a file
本问题已经有最佳答案,请猛点这里访问。
我有一个关于Java的问题:
我正在尝试制作一个程序,通过文件和检查一些东西,但为此,我需要一些东西来计算行,有谁知道一个很好的方法来做到这一点?
我之前从未使用过文件,所以我真的不知道。
我也没有代码显示,因为我不知道该怎么做。
通过在互联网上搜索,你可以自己找到这个。
但是,这是我使用的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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] == ' ') { ++count; } } } return (count == 0 && !empty) ? 1 : count; } finally { is.close(); } } |
我希望这个对你有用。
更新:
这对你来说应该更容易。
1 2 3 4 5 | BufferedReader reader = new BufferedReader(new FileReader(file)); int lines = 0; while (reader.readLine() != null) lines++; reader.close(); System.out.println(lines); |
在Java 8中:
1 2 3 4 5 6 7 | long lineCount = 0; try (Stream<String> lines = Files.lines(Paths.get(filename))){ lineCount = lines.count(); } catch (final IOException i) { // Handle exception. } |
你可以做到:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 } } |
你只需要这样做: -
1 2 3 4 5 | BufferedReader br = new BufferedReader(new FileReader(FILEPATH)); int lineCount = 0; while(br.readLine() != null) lineCount++; System.out.println(lineCount); |
您可以尝试这一点,在行变量中,您将获得行数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } |