我有一个关于Java的问题:
我正在尝试创建一个遍历文件并检查某些内容的程序,但为此我需要一些东西来计算这些行,有没有人知道这样做的好方法?
之前我从未使用过文件,所以我真的不知道。 此外,我没有显示代码,因为我不知道该怎么做。
答案 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
}
}