当前位置: 首页 > 知识库问答 >
问题:

从16MB文件中读取数据而不冻结应用程序的最佳方式

甄胡非
2023-03-14

我有个问题,找不到好的解决办法。我需要读取一个包含大量数据的文本文件(文件有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();
}

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

提前谢谢。

共有1个答案

庄浩言
2023-03-14

使用此选项在后台运行:

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();
    }
   }
});
 类似资料:
  • 我开始用django编程。现在我必须从文件中导入一些数据。在 django 1.7 中执行此操作的最佳方法是什么? 我只想这样做一次,所以我写了一个脚本,我可以在其中将数据放入django的数据库中。此时我的问题是,在将数据添加到数据库之前,我必须检查一些依赖项。 我试图检查数据库中是否已经存在我要导入的值。但我得到一个错误: {AppRegistryNotReady}模型未加载是。 所以我想我做

  • 问题内容: 当前,我们的Java应用程序使用制表符分隔的* .cfg文件中包含的值。我们需要更改此应用程序,以使其现在使用XML文件。 为了从此文件中读取值,使用的最佳/最简单的库是什么? 问题答案: 当然,根据您的需要有很多好的解决方案。如果只是配置,则应查看Jakarta commons- configuration 和commons- digester 。 您总是可以使用获取文档的标准JDK

  • 我试图了解使用android应用程序下载文件的不同方法的利弊。 我找到了几种方法: 自己管理下载(请参阅此代码片段) 使用Android的DownloadManager 使用OKHttp下载文件,如本文所述 有这方面经验的人能告诉我选择一种方式而不是另一种方式的原因吗?

  • 我在包'\src\main\resources\'中有一个文件。我希望在位于'src\main\java\com\xxxx\xxxx\services\'的。java文件中读取该文件。当我运行以下代码时, 我将USER_DIRECTORY的值设置为'C:\workspace\apache-tomcat-7.0.70\bin',将DOCUMENT_DIRECTORY的值设置为'C:\workspac

  • 问题内容: 我希望在学习快速的过程中开发一个库存/物品库存应用程序。它基本上是具有项目名称,数量和位置的东西。 例如。 25号工作货车灯泡 开关,6,仓库 当用户输入此数据并按下按钮时,什么是存储此数据并在以后检索的最佳方法。我知道我可以将此附加到数组并显示该数组,但是如果应用程序关闭,该怎么办? 我应该在学习数据库存储吗?我可以将数据保存到手机吗? 问题答案: 如果要存储的数据很少且不敏感,则可

  • 问题内容: 我必须使用Java读取旧格式的二进制文件。 简而言之,该文件的标头由几个整数,字节和固定长度的char数组组成,后跟同样由整数和char组成的记录列表。 我可以用任何其他语言创建s(C / C ++)或s(Pascal / Delphi),它们是标题和记录的逐字节表示。然后,我将字节读入标头变量,并对记录执行相同的操作。 像这样:(Delphi) 用Java做类似的事情的最佳方法是什么