正在 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");
我需要使用 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");