简体   繁体   中英

Using PrintWriter in Java

I trying to run multiple command shells from Java. I am able to do that (and get the output in the console using PrintWriter). However, I want to be able to get the output of each command in a separate String. Is that possible?

Here is a part of the code :

 File wd = new File("/bin");
    Process proc = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
    out.println("cd ..");

    out.println("ls");
    System.out.println("moving to /var directory");
    out.println("cd /var/");
    out.println("ls");
    //get output of ls command in string variable
    out.println("cd ..");
    out.println("cd /etc/");
    out.println("ls -a");
    out.println("ps");

    out.println("exit");
    try {
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
        proc.waitFor();
        in.close();
        out.close();
        proc.destroy();
    }
    catch (Exception e) {
         e.printStackTrace();
    }

Have you tried putting a section like

StringBuilder builder = new StringBuilder();
String line = null;
while ((line = in.readLine()) != null) {
    builder.append(line).append("\n");
}
String commandOutput = builder.toString();

after each command? Is that roughly what you are trying to achieve?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM