Я работаю над настольным приложением, которое будет анализировать некоторые вещи на виртуальной машине.Я могу писать и читать после соединения SSH
.Я сохраняю данные во временном .txt
файле.Теперь я хочу сравнить его, скажем, с другим .txt
файлом, который содержит правильные amount/name
каталогов.Например, если я хочу проверить каталоги на ../workspace/
с моим кодом ниже от scanForVm
.Содержимое (на самом деле не только вывод команды) сохраняется в .txt
файле.
У меня проблема в том, что он записывает в него ненужные данные, и я не могу сравнить его с другими .txt
файл.
Я пытался найти ответ в течение нескольких часов и пробовал разные подходы.
public void scanForVm(MouseEvent event) throws IOException, InterruptedException {
if (event.getSource() == scanButton) {
networkCheck.scanNetwork();
sshConnection.connectionToSsh("ls -d workspace/*/\n");
sshConnection.readOutput();
}
}
, а затем:
public void readOutput() throws IOException, InterruptedException {
Path file = Paths.get(" / path / To / Text.txt ");
System.out.println(outputDescr); //Debug format
InputStream stdout = new StreamGobbler(sess.getStdout());
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int read;
String output = "";
while ((read = stdout.read(buffer)) != -1) {
result.write(buffer, 0, read);
Files.write(file, buffer);
Thread.sleep(2000);
System.out.println(output);
}
}
Я хочу ввод от vmбыть действительно читабельным.
Теперь я получаю это:
Идентификация добавлена:
/path/path/path/.ssh/...
[0m[01;36mworkspace/directory/[0m [01;36mworkspace/directory2/[0m
ls -d workspace/*/
И я хочу, чтобы это было только:
workspace/directory/
workspace/directory2/