我对过去曾做过的事情有疑问,但从未真正想过它是否是最有效的方法。
我们说我有一个文本文件,其中每一行都包含一些重要内容,然后让我说我有多组这些行,每行都对应一个独特的环境...例如:
1
String that I need to parse for specific tokens..
2
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
3
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
所以给定上面的输入文件,我过去解决这个问题的方法类似于以下(半伪代码!):
BufferedReader inputFile = new BufferedReader(new FileReader("file.txt"));
while(inputFile.hasNextLine())
{
Scanner line = new Scanner(inputFile.nextLine());
//parse the line looking for tokens
}
inputFile.close();
我的问题是,为我的BufferedReader中的每一行创建一个新的Scanner对象似乎非常低效。
有没有更好的方法来实现此功能?
一个建议可能是用令牌扫描整个文档,但我的问题是我无法跟踪子集中有多少个字符串(由整数表示);或者至少我不能想到另一个解决方案而不是每次看到一个新线时减少一个计数器。
提前致谢!
答案 0 :(得分:0)
看看这个;
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new FileReader(new File("d:/sample.txt")));
LineNumberReader lr = new LineNumberReader(bf);
String line = "";
while ((line = lr.readLine()) != null) {
System.out.println("Line Number " + lr.getLineNumber() +
": " + line);
}
}