Java 在安卓系统中,读取文件的速度很慢

Java 在安卓系统中,读取文件的速度很慢,java,android,file,Java,Android,File,我用scanner实现了一个从文件中读取的小代码,并将值保存在数组中。我同时读取3-6个文件,并将数字保存在3-6个数组中。这些文件保存在我手机的SD卡上。我的问题是,所有这些都读得很慢,而且花了很长时间才读完。如何重新编写代码以提高效率,或者文件应保存在项目上,以及何时在设备上安装应用程序以安装文件并从那里访问它们 am usgin的代码如下所示: try { File I= new File(Environment.getExternalStorageDirectory().toStri

我用scanner实现了一个从文件中读取的小代码,并将值保存在数组中。我同时读取3-6个文件,并将数字保存在3-6个数组中。这些文件保存在我手机的SD卡上。我的问题是,所有这些都读得很慢,而且花了很长时间才读完。如何重新编写代码以提高效率,或者文件应保存在项目上,以及何时在设备上安装应用程序以安装文件并从那里访问它们

am usgin的代码如下所示:

try {

 File I= new File(Environment.getExternalStorageDirectory().toString()+"/ECG/test/I.txt");  
 scannerI = new Scanner(I);
 scannerI.useDelimiter(";"); 
 for(int sampleIdx = 0; scannerI.hasNext();){
 timiI[sampleIdx] = scannerI.nextDouble();
 sampleIdx++;

 if(sampleIdx == SAMPLE_SIZE && !Thread.currentThread().isInterrupted()){
 //do something
 sampleIdx = 0;
                    }
                }           
           }
}

正如我之前提到的,我使用了超过1个文件,根据我的经验,Android中相应的数组扫描速度很慢

我通过

  • 将解析代码移动到异步任务中(http://developer.android.com/reference/android/os/AsyncTask.html)并在后台线程中运行文件读取
  • 使用LineNumberReader和String.split(;)代替扫描仪

  • 第二个提示将我的应用程序的速度提高了约10倍,但仍然太慢,无法避免ANR,因此需要执行后台任务。

    根据我的经验,Android中的Scanner速度很慢

    我通过

  • 将解析代码移动到异步任务中(http://developer.android.com/reference/android/os/AsyncTask.html)并在后台线程中运行文件读取
  • 使用LineNumberReader和String.split(;)代替扫描仪

  • 第二个提示将我的应用程序的速度提高了约10倍,但仍然太慢,无法避免ANR,因此需要执行后台任务。

    异步任务如何帮助加快文件读取速度?我同时读取3-6个文件。这本身并不会加快解析速度,但会阻止ANR框弹出。谢谢CjS。现在只使用一个文件进行尝试,速度非常快。我将尝试它,并与所有的文件,让我们希望是快速的,虽然异步任务将有助于加快文件的读取?我同时读取3-6个文件。这本身并不会加快解析速度,但会阻止ANR框弹出。谢谢CjS。现在只使用一个文件进行尝试,速度非常快。我将尝试它和所有的文件,让我们希望尽快得到足够的