Programming Tutorials

Read a file having a list of telnet commands and execute them one by one using Java

By: Oliver in Java Tutorials on 2023-05-11  

You can achieve this by reading the list of telnet commands from a file and executing them one by one using the ProcessBuilder class in Java. Here's some sample code that demonstrates how to do it:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class TelnetCommands {

    public static void main(String[] args) throws IOException {
        String filename = "telnet_commands.txt"; // replace with your file name
        List<String> commands = readCommandsFromFile(filename);
        executeCommands(commands);
    }

    private static List<String> readCommandsFromFile(String filename) throws IOException {
        List<String> commands = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
            String line;
            while ((line = br.readLine()) != null) {
                commands.add(line);
            }
        }
        return commands;
    }

    private static void executeCommands(List<String> commands) throws IOException {
        ProcessBuilder pb = new ProcessBuilder("cmd");
        pb.redirectErrorStream(true);
        Process p = pb.start();
        try (BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
            OutputStream os = p.getOutputStream();
            for (String command : commands) {
                os.write((command + "\n").getBytes());
                os.flush();
                String output = br.readLine();
                while (output != null) {
                    System.out.println(output);
                    output = br.readLine();
                }
            }
            os.write("exit\n".getBytes());
            os.flush();
        }
    }
}

Here, we first read the list of telnet commands from the specified file using the readCommandsFromFile method. Then, we execute each command one by one using the executeCommands method.

To execute the commands, we create a ProcessBuilder object with the cmd command as its argument, which starts a new command prompt window. We then get the input and output streams of the command prompt process, and write each command to the input stream using the OutputStream object. We also read the output of each command from the output stream using the BufferedReader object, and print it to the console. Finally, we send the exit command to the command prompt process to terminate it.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Java )

Latest Articles (in Java)