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不显示在输出中,我不知道为什么。
有什么建议吗?
答
我想你可以尝试多个线程。 7可能会做得很好,但你必须检查7是不是太多,你的目标是最慢的设备。你需要为UI线程留下一些CPU。
+0
这可能是一个很好的解决方案,我不确定创建7个线程,每个读取一个文件比我现在要做的要高效得多。这可能值得做一些测试 – user1974977 2013-04-20 19:31:16
为什么不使用Java的内置文件读取器类? – Thomas 2013-04-20 19:20:30
你的文件是一行吗?就像@Thomas说的,你不需要使用Process。这可能会降低速度。 – 2013-04-20 19:37:14
只需使用FileInputStream重新测试,现在速度更快,你们是对的。 – user1974977 2013-04-20 21:22:14