Поток вывода из SSHJ или JScH

Я просмотрел API-интерфейсы Java, такие как SSHJ и JScH для выполнения команд на удаленном компьютере. Я изучил Java Expect API, такие как ExpectIt и Expect4j. Но я не смог найти способ построчной передачи вывода с машины на мой java-процесс. Допустим, я выполняю grep для огромного файла на своем удаленном компьютере, и я хочу передать огромный вывод, строка за строкой, в мой процесс, вместо того, чтобы ждать завершения всей команды. Является ли это возможным ? если да, то как это сделать?


person nav3916872    schedule 30.10.2016    source источник
comment
вы должны показать кое-что из того, что вы пробовали до сих пор.   -  person tom    schedule 30.10.2016


Ответы (1)


Я надеюсь, что мы сможем сделать это, как только вы установите выходной поток в файл. В приведенном ниже коде мой поток вывода направляется в файл «outs.txt» в вашей системе. Пока он заполняется, вы можете создать новый поток, чтобы начать обработку содержимого файла. Ниже фрагмент кода показывает, как настроить выходной поток. После этого фрагмента кода вы должны запустить поток для обработки вывода из файла «outs.txt». Удачного кодирования!!!

                    ss=new StringBuilder("grep aa.txt");
                    ss.append("\n");
                    FileWriter fw = new FileWriter("comm.txt");
                    BufferedWriter bw = new BufferedWriter(fw);
                    bw.write(ss.toString());
                    bw.flush();
                    fw.close();
                    bw.close();
                    InputStream is=new FileInputStream("comm.txt");
                    OutputStream os=new FileOutputStream("outs.txt");   
                    channel.setInputStream(is);
                    channel.setOutputStream(os);
                    Thread.sleep(1000);
                    channel.connect();
person SRIDHARAN    schedule 01.04.2017