我有一个文本文件.它的设计如下:
#1{1,12,345,867}
#2{123, 3243534, 2132131231}
#3{234, 35345}
#4{}
...(在每个条目的末尾代表"\n")
这是一个例子.事实上我的字符串#number {number,number,...,number}可能真的很长......
这是一个使用此文件的类的构造函数的模板:
public Submatrix(String matrixFilePath, int startPos, int endPos) throws FileNotFoundException{
}
Run Code Online (Sandbox Code Playgroud)
如您所见,子矩阵由startPos和endPos矩阵的字符串数决定.
我的问题是:"我如何计算字符串以达到合适的字符串?" 我的文件可以包含数十亿个字符串.我应该使用LineNumberReader-> readLine()数十亿次?????
我很想顺序读取每一行,直到我到达所需的行.但是,由于行在文件中编号并用换行符分隔,因此您可以将文件视为随机访问并采用各种策略.例如,您可以使用二进制搜索的变体来快速查找起始行.您可以估计前N行的平均线长,然后尝试对起始位置进行更准确的猜测,依此类推.