Java 对于“su”子进程,我应该将命令写入输出流还是输入流?

Java 对于“su”子进程,我应该将命令写入输出流还是输入流?,java,android,inputstream,root,outputstream,Java,Android,Inputstream,Root,Outputstream,为了获得android的root权限,我们通常会这样做: Process p=Runtime.getRuntime().exec(“su”); DataOutputStream stream=new DataOutputStream(p.getOutputStream()); stream.writeBytes("mkdir /testFolder\n"); stream.writeBytes(“exit \n”); p.waitFor(); 执行上面的代码,我们可以创建一个文件夹/test

为了获得android的root权限,我们通常会这样做:

Process p=Runtime.getRuntime().exec(“su”);
DataOutputStream  stream=new DataOutputStream(p.getOutputStream());
stream.writeBytes("mkdir /testFolder\n");
stream.writeBytes(“exit \n”);
p.waitFor();

执行上面的代码,我们可以创建一个文件夹/testFolder,一切正常,但我对此感到困惑。你知道,当我们想在终端中执行一些命令时,我们首先输入一些代码,然后程序读取输入缓冲区来处理这些代码。但在这里,我们将字符串写入子进程的输出流,为什么?似乎te sub progress从其输出缓冲区读取命令,而不是从输入缓冲区读取命令?

可能命名有点奇怪,但返回一个连接到进程标准输入的输出流

这些名称是从父进程的角度来看的。父进程的输出是子进程的输入。父进程的输入是子进程的输出