Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Hi Could you separate the Java code with some extension, please? The codes might

ID: 3871085 • Letter: H

Question

Hi

Could you separate the Java code with some extension, please?

The codes might be something like these:

UserInput.java

CallProcess.java

Main.java

And other files whichever needed

Thank you.

My code is here:(Its Java code and I am using NetBeans for this code)

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintStream;

import java.util.Arrays;

/**

*

* @author narayanthapa

*/

public class NewClass {

    public static void main(String [] args) throws IOException {

       

        String[] command = {"ls"};

        ProcessBuilder probuilder = new ProcessBuilder( command );

        //You can set up your work directory

        probuilder.directory(new File("/Users/narayanthapa/Desktop"));

       

        Process process = probuilder.start();

       

        //Read out dir output

        InputStream is = process.getInputStream();

        InputStreamReader isr = new InputStreamReader(is);

        BufferedReader br = new BufferedReader(isr);

        String line;

        System.out.printf("Output of running %s is: ",

                Arrays.toString(command));

        while ((line = br.readLine()) != null) {

            System.out.println(line);

        }

       

        //Wait to get exit value

        try {

            int exitValue = process.waitFor();

            System.out.println(" Exit Value is " + exitValue);

        } catch (InterruptedException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}

Explanation / Answer

package com.vassarlabs.test.practise;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
*
* @author narayanthapa
*/
public class NewClass {

    public static void main(String [] args) throws IOException {

        String[] commandList = {"ls"};
       UserIOHandler userIOHandler = new UserIOHandler();
       UserProcessCreator processCreator = new UserProcessCreator(commandList, "/Users/narayanthapa/Desktop");
          processCreator.startProcess();
        userIOHandler.handleEvent(processCreator);
    }
}


class UserProcessCreator {
  
    private ProcessBuilder proBuilder;
    private Process process;
    private String[] commandList;
  
   public UserProcessCreator(String[] commandList, String directory) {
       this.proBuilder = new ProcessBuilder(commandList);
       this.proBuilder.directory(new File(directory));
       this.commandList = commandList;
   }

   public void setDirecotry(String directory) {
       this.proBuilder.directory(new File(directory));
   }
  
   public void startProcess()
           throws IOException {
        this.process = proBuilder.start();
   }
  
   public Process getProcess() {
       return this.process;
   }
  
   public String[] getCommand() {
       return this.commandList;
   }
  
   public void waitFor() {
        try {
            int exitValue = process.waitFor();
            System.out.println(" Exit Value is " + exitValue);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
   }
}


class UserIOHandler {
  
   public UserIOHandler() {
       super();
   }
  
   public void handleEvent(UserProcessCreator processCreator)
           throws IOException {
      
       Process process = processCreator.getProcess();
       InputStream is = process.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        System.out.printf("Output of running %s is: ", Arrays.toString(processCreator.getCommand()));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
      
        processCreator.waitFor();
   }
}