我正在尝试使用扫描仪读取文件(双值)并将数据保存到数组中。到目前为止,它工作得很好。我想做的奇怪的是,我想从文件中读取某些值(前 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++;
}
最佳答案
假设您的“读取某些值(前 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
倍数的情况。这可以很容易地扩展到解决这种情况,但这是留给读者的练习 - 至少现在是这样。
关于java - 在文件上使用扫描仪并保存在阵列上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953953/