使用java查找文本文件中单词的行号

我需要在文本文件中搜索一个单词并使用java显示行号。 如果它不止一次出现,我需要在输出中显示所有行号。 有人可以帮我吗?

使用Java类LineNumberReader读取文本文件,并调用方法getLineNumber以查找当前行号。

http://docs.oracle.com/javase/7/docs/api/java/io/LineNumberReader.html

您可以手动存储此信息。 无论何时调用BufferedReader readline() ,如果你正在使用它,你也可以将计数器递增1。 例如,

 public int grepLineNumber(String file, String word) throws Exception { BufferedReader buf = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream(file)))); String line; int lineNumber = 0; while ((line = buf.readLine()) != null) { lineNumber++; if (word.equals(line)) { return line; } } return -1; } 

这样的事情可能有用:

 public ArrayList find(String word, File text) throws IOException { LineNumberReader rdr = new LineNumberReader(new FileReader(text)); ArrayList results = new ArrayList(); try { String line = rdr.readLine(); if (line.indexOf(word) >= 0) { results.add(rdr.getLineNumber()); } } finally { rdr.close(); } return results; }