Java 我想在日志文件中搜索域文件中的字符串…读取我使用嵌套循环的两个文件…输出不正确

Java 我想在日志文件中搜索域文件中的字符串…读取我使用嵌套循环的两个文件…输出不正确,java,android,Java,Android,我首先使用嵌套循环读取域文件,然后使用嵌套循环读取日志文件。但对于域文件中的第一个字符串,它会搜索整个日志文件,但不会搜索域文件中的其他字符串 当域文件中的第二个条目执行br.readLine()时,BufferedReader位于日志文件的末尾。而是将日志文件的读取分解为另一种方法。请记住,这种想法不是很有效,您可能希望先读取域文件,存储您正在扫描的字符串,只读取日志文件一次,并对从域文件读取的每个条目扫描一行Check out BufferedReader mark and reset如果您

我首先使用嵌套循环读取域文件,然后使用嵌套循环读取日志文件。但对于域文件中的第一个字符串,它会搜索整个日志文件,但不会搜索域文件中的其他字符串

当域文件中的第二个条目执行
br.readLine()
时,BufferedReader位于日志文件的末尾。而是将日志文件的读取分解为另一种方法。请记住,这种想法不是很有效,您可能希望先读取域文件,存储您正在扫描的字符串,只读取日志文件一次,并对从域文件读取的每个条目扫描一行Check out BufferedReader mark and reset如果您想重用相同的缓冲读取器,我对这两个文件使用了不同的缓冲读取器,但第一个while循环仅对第一个文件执行一次行。。。因为指针现在位于文件的末尾。我不知道如何从文件的开头再次读取。标记和重置是一个不错的选择,但我的文件大小非常大。重置缓冲区在这里不起作用。我想我必须使用哈希集或随机访问文件,重新打开是另一种选择,但性能似乎不好。谢谢您的帮助。
while((sline= bbr.readLine()) != null) {
    while ((line = br.readLine()) != null){
        if (line.contains(sline)){
            tracker.append(line); tracker.append("\n  ");tracker.append("\n  ");    
            String track = new String(tracker.toString()); 
            writeToFile(c,track,"trackingInfo.txt");
        }
    }// end of while1
}// end of while2
br.close();
bbr.close();