下面是我如何計算文本文件中的行數。只是想知道有沒有其他方法來做到這一點?計算文本文件中的行數(java)
while(inputFile.hasNext()) {
a++;
inputFile.nextLine();
}
inputFile.close();
我想輸入數據到數組中,我不想兩次讀取文本文件。
任何幫助/建議表示讚賞。
感謝
下面是我如何計算文本文件中的行數。只是想知道有沒有其他方法來做到這一點?計算文本文件中的行數(java)
while(inputFile.hasNext()) {
a++;
inputFile.nextLine();
}
inputFile.close();
我想輸入數據到數組中,我不想兩次讀取文本文件。
任何幫助/建議表示讚賞。
感謝
如果你只是想將數據添加到一個數組中,然後我將新值添加到數組中。如果您正在閱讀的數據量不大,並且您不需要經常這樣做,那應該沒問題。我用這樣的事情,在這個答案給出:Reading a plain text file in Java
BufferedReader fileReader = new BufferedReader(new FileReader("path/to/file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}
如果您在數字閱讀中,字符串可以轉換爲數字,說爲整數的intValue =的Integer.parseInt(文本)
如果您使用的是Java 7或更高版本,你可以直接讀取使用readAllLines方法的所有行的列表。這將是很容易
List<String> lines = Files.readAllLines(Paths.get(fileName), Charset.defaultCharset());
則列表的大小,將返回的行數的文件
int noOfLines = lines.size();
對於休閒讀者,請注意'readAllLines'不適合閱讀大文件。 – Stephan 2015-05-20 06:35:07
如果你使用的是Java 8,你可以使用流:
long count = Files.lines(Paths.get(filename)).count();
這將有很好的表現,真的很有表現力。
不利的一面(與Thusitha Thilina Dayaratn答案相比)是你只有行數。 如果你也想在列表中有行,你可以做(仍然使用Java 8流):
// First, read the lines
List<String> lines = Files.lines(Paths.get(filename)).collect(Collectors.toList());
// Then get the line count
long count = lines.size();
或者快捷方式Files.lines(Paths.get(filename))。count()' – 2016-02-08 23:22:38
Thanks @MattByrne,我根據你的建議編輯了答案 – superbob 2016-02-09 08:07:32
這對於大文件是很好的方法(例如服務器日誌?) – 2017-06-19 17:32:48
我沒有足夠的信譽發表評論,但@superbob答案几乎是完美的,你的確應該確保通過Charset.defaultCharset()作爲第二參數,如:
Files.lines(file.toPath(), Charset.defaultCharset()).count()
這是因爲使用Files.lines UTF-8通過默認,然後使用,因爲它是非默認UTF-8的系統上可以產生的java.nio。 charset.MalformedInputException。
*「我沒有足夠的評論聲望」* **並不意味着您應該使用答案**。這意味着你需要學習如何使用該網站,並且當你有足夠的經驗時,你將被授予評論的[特權](/幫助/特權)。在此之前,請[提供不需要提問者澄清的答案](// meta.stackexchange.com/q/214173)。 – 2016-11-17 16:04:46
Woah,這真是太好了......我只是想給閱讀該頁面的人提供額外的信息,而這是我現在唯一可以想到的方式。如果這是一個糟糕的主意/行爲,我很抱歉,我只是想幫助... – 2016-11-18 15:07:41
參考http://stackoverflow.com/questions/1277880/how-can-i-get-the-count-of-line-in-a-file-in-an-efficient-way – DeepInJava 2014-10-19 07:33:34
你想要計數行或存儲在數組中?如果後者你不需要數線...... – assylias 2014-10-19 07:34:42
是的。我必須閱讀文本,然後根據文本的長度製作一個數組。然後再次讀取數據並將其放入數組中。它只需要10-15行代碼就可以對文本文件進行計數。 – Nghia 2014-10-19 07:35:01