你想要的是一个LineNumberReader.
您可以使用该方法setLineNumber()移动到文件中的随机位置.
LineNumberReader rdr;
int numLines;
Random r = new Random();
rdr.setLineNumber(r.nextInt(numLines));
String theLine = rdr.readLine();
Run Code Online (Sandbox Code Playgroud)
为此,您需要固定长度的行(在这种情况下实现细节应该是显而易见的)或有关有多少行以及(可选地,为了更好的性能)它们在文件内开始的偏移量的信息(索引排序)。
对于小文件,只要需要随机行,就可以按需创建这样的索引。为了有效地处理大文件,您需要持久地保留索引,也许在一个单独的文件中。
如果行的长度大致相同并且您不需要完美的“随机性”,您还可以在文件内选择一个随机字节偏移量并扫描最近的换行符。
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |