我不认为有任何“魔术”方法可以跳到文件中的任意“行”。行仅由换行符定义,因此,如果不实际读取文件,就无法知道行将在何处。我相信您有两种选择:
- 遵循Mark Peter的回答,并使用BufferedReader一次一行读取文件,直到到达所需的行。这显然很慢。
- 找出下一次读取需要从多少字节(而不是行)开始,并使用RandomAccessFile之类的东西直接寻找文件中的该点。是否可以有效地知道正确的字节数取决于您的应用程序。例如,如果要顺序读取文件,一次读取一个文件,则只需记录下一个停止的位置。如果所有行的长度都是固定的L字节,那么到达第N行只是寻找位置N * L的问题。如果您经常重复此操作,则一些预处理可能会有所帮助:例如,一次读取整个文件,并将每行的开始位置记录在内存中的HashMap中。下次您需要转到N行时,只需在HashMap中查找它的位置并直接寻找到该点即可。



