Executing a Process in Android to read a file

情到浓时终转凉″ 提交于 2019-12-13 08:19:43

问题


I need to read the content of a file using a Linux Shell Command executed using Java in Android. What command do I need to execute in order to read all the text in the file and save in a String object?

Note that I can't use the simple Java I/O functions! The file that I need to read is in the device's system directory.

   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();

回答1:


File f=new File("path");
FileInputStream fin=new FileInputStream(f);
byte array[]=new byte[fin.avaialable()];
fin.read(array);
String string=new String(array);

is enough.Why don't you follow simple solutions?

Update

/**
 * 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;
}

Invoke it as exec("cat misc/file.txt");



来源:https://stackoverflow.com/questions/29796157/executing-a-process-in-android-to-read-a-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!