我正在尝试使用扫描仪读取文件(双值)并将数据保存到数组中。直到这一点它运作良好。我想要做的奇怪的是,我想从文件中读取某些值(前10个),将它们添加到数组中,对这些值执行某些操作,然后读取接下来的10个值并继续执行直到eof。 直到现在我只能读取前10个值并且无法读取第二组值 我正在使用的代码是:
File fi= new File(Environment.getExternalStorageDirectory().toString()+"/ECG/I.txt");
scanner = new Scanner(fi);
scanner.useDelimiter(";");
int SAMPLE_SIZE=4;
double timi[]= new double[SAMPLE_SIZE];
for (int size=0; size<SAMPLE_SIZE; size++)
{
while(scanner.hasNext()&&size<SAMPLE_SIZE) {
timi[size]=scanner.nextDouble();
Log.i("File","String " + size +" "+timi[size]);
size++;
}
答案 0 :(得分:1)
假设您的“读取某些值(前10位)”是您的SAMPLE_SIZE
(目前为4位),您可以执行以下操作:
File fi = new File(Environment.getExternalStorageDirectory().toString() + "/ECG/I.txt");
scanner = new Scanner(fi);
scanner.useDelimiter(";");
int SAMPLE_SIZE = 4;
double timi[] = new double[SAMPLE_SIZE];
for(int sampleIdx = 0; scanner.hasNext();){
timi[sampleIdx++] = scanner.nextDouble();
Log.i("File", "String " + sampleIdx + " " + timi[sampleIdx]);
if(sampleIdx == SAMPLE_SIZE){
// Do something with the timi array here.
sampleIdx = 0;
}
}
目前,这并不考虑文件中的条目数不是SAMPLE_SIZE
的倍数的情况。这可以很容易地扩展到考虑到这种情况,但这是一个留给读者的练习 - 至少目前是这样。