在不冻结应用程序的情况下从16MB文件中读取数据的最佳方法



我有一个问题,找不到一个好的解决方案。我需要读取包含大量数据的文本文件(文件有 16MB(。该文件包含 12 列,每列中都有整数值。通常,我的问题是如何在不冻结应用程序的情况下执行此操作。我的文件在我的项目的 assets 文件夹中,我尝试使用这样的东西:

AssetManager assetManager = this.getAssets();
try {
    InputStream inputStream = assetManager.open("3333.ecg");
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
    String str;
    while ((str = bufferedReader.readLine()) != null) {
        stringBuilder.append(str);
    }
} catch (IOException e) {
    e.printStackTrace();
}

但是应用程序冻结了。我的目标是从每列中获取数据并将其保存到整数数组列表中。我正在寻找一些建议。

提前谢谢。

使用它在后台运行它:

AsyncTask.execute(new Runnable() {
   @Override
   public void run() {
    AssetManager assetManager = this.getAssets();
    try {
        InputStream inputStream = assetManager.open("3333.ecg");
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String str;
        while ((str = bufferedReader.readLine()) != null) {
            stringBuilder.append(str);
    }
    } catch (IOException e) {
        e.printStackTrace();
    }
   }
});

最新更新