java - 在文件上使用扫描仪并保存在阵列上

标签 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++;
      }

最佳答案

假设您的“读取某些值(前 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/

相关文章:

android - 在 ViewPager 中滑动时从 fragment 中检索值 - Android

android - 如何阻止屏幕方向并仍然获得方向更改通知

java - 在 Java 类中生成唯一 ID

java - 每当使用java在android studio中滚动回收 View 时,如何隐藏(基本上向下滑动)按钮(在底部对齐)

java - aws java sdk 未返回所有文件夹

php - 使用 key IDS 构建新阵列

javascript - 从本地存储加载数组: result not an array - javascript

java - SurfacePlotMesh (FXyz) 构造函数参数

php - 使用 JSON 从 Android 发送 Base64 图像到 php webservice,解码,保存到 SQL

javascript - 如何在同一索引处输出不同的数组javascript