Android最快的方式来读取多个文件?

问题描述:

我正在写一个android应用程序,我需要在启动时读取7个SYSTEM文件。什么是最有效的方式来做到这一点?Android最快的方式来读取多个文件?

这是我的代码,现在,它是相当缓慢

读(文件1); read(file2); ... read(file7);

...

public static String read(String file) { 
    String fileContents = ""; 
    try { 
     String[] args = {"/system/bin/cat", file }; 
     ProcessBuilder cmd = new ProcessBuilder(args); 
     Process p = cmd.start(); 
     InputStream stream = p.getInputStream(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); 
     fileContents = reader.readLine(); 
     reader.close(); 
     stream.close(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return fileContents; 
} 

必须有某种方式来猫,但不关闭这应该显著加快速度流的每个文件。我试着用7个猫的cmds制作一个shell脚本,并读取输出,但是所有东西都混在一起,我不能分割结果。

我试图分裂回声CMDS猫CMDS以在输出deliminator: “!”

cat file1 
echo ! 
cat file2 
echo ! 

但deliminators不显示在输出中,我不知道为什么。

有什么建议吗?

+2

为什么不使用Java的内置文件读取器类? – Thomas 2013-04-20 19:20:30

+2

你的文件是一行吗?就像@Thomas说的,你不需要使用Process。这可能会降低速度。 – 2013-04-20 19:37:14

+1

只需使用FileInputStream重新测试,现在速度更快,你们是对的。 – user1974977 2013-04-20 21:22:14

我想你可以尝试多个线程。 7可能会做得很好,但你必须检查7是不是太多,你的目标是最慢的设备。你需要为UI线程留下一些CPU。

+0

这可能是一个很好的解决方案,我不确定创建7个线程,每个读取一个文件比我现在要做的要高效得多。这可能值得做一些测试 – user1974977 2013-04-20 19:31:16