正在 Android 中执行进程以读取文件

Executing a Process in Android to read a file

我需要使用 Android 中的 Java 执行的 Linux Shell 命令读取文件内容。我需要执行什么命令才能读取文件中的所有文本并保存在 String 对象中?

请注意,我无法使用简单的 Java I/O 功能!我需要读取的文件在设备的系统目录中。

   String command= "";
   String file_path = "misc/file.txt";
   StringBuffer output = new StringBuffer();

      Process p;
      try {
        p = Runtime.getRuntime().exec(command);
        p.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

        String line = "";     
        while ((line = reader.readLine())!= null) {
          output.append(line + "\n");
        }

      } catch (Exception e) {
        e.printStackTrace();
      }
      String response = output.toString();
File f=new File("path");
FileInputStream fin=new FileInputStream(f);
byte array[]=new byte[fin.avaialable()];
fin.read(array);
String string=new String(array);

是enough.Why你不遵循简单的解决方案吗?

更新

/**
 * Execute a command in a shell
 * 
 * @param command
 *            command to execute
 * @return the return of the command
 */
public String exec(String command) {
    String retour = "";
    try {
        Runtime runtime = Runtime.getRuntime();

        Process p = runtime.exec(command);

        java.io.BufferedReader standardIn = new java.io.BufferedReader(
                new java.io.InputStreamReader(p.getInputStream()));
        java.io.BufferedReader errorIn = new java.io.BufferedReader(
                new java.io.InputStreamReader(p.getErrorStream()));
        String line = "";
        while ((line = standardIn.readLine()) != null) {
            retour += line + "\n";
        }
        while ((line = errorIn.readLine()) != null) {
            retour += line + "\n";
        }
    } catch (java.io.IOException e) {
        e.printStackTrace();
    }

    return retour;
}

将其调用为 exec("cat misc/file.txt");