在文件上使用scanner并保存在数组上

时间:2012-01-21 14:58:13

标签: java android arrays

我正在尝试使用扫描仪读取文件(双值)并将数据保存到数组中。直到这一点它运作良好。我想要做的奇怪的是,我想从文件中读取某些值(前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++;
      }

1 个答案:

答案 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的倍数的情况。这可以很容易地扩展到考虑到这种情况,但这是一个留给读者的练习 - 至少目前是这样。