Java 读取命令的实时输出
如何从Java读取shell命令的实时输出 这是我到目前为止得到的,但它在执行命令后打印:Java 读取命令的实时输出,java,android,Java,Android,如何从Java读取shell命令的实时输出 这是我到目前为止得到的,但它在执行命令后打印: try { proc = Runtime.getRuntime().exec("du -d 1 /sdcard/"); InputStream inputStream = proc.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); Buff
try {
proc = Runtime.getRuntime().exec("du -d 1 /sdcard/");
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((line = bufferedReader.readLine()) != null) {
publishProgress(i);
i++;
System.out.println(line); // it prints all at once after command has been executed.
}
}
catch (IOException e) {
Log.e("du","error "+e.getMessage());
}
试试这个:
try {
proc = Runtime.getRuntime().exec("du -d 1 /sdcard/");
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line); // it prints all at once after command has been executed.
}
proc.waitFor();
}
catch (IOException e) {
Log.e("du","error "+e.getMessage());
}
顺便问一下,您在哪里看到
System.out.println的输出?您的输出中只有一行吗?du
非常快。但是,您是否尝试过ProcessBuilder和Process.start?@pedja在LogCat中可以看到Log
方法的输出,而不是System.out.println
No。它的命令du
来自linux。扫描整个文件夹并显示大小