Хочу добиться интерактивного взаимодействия с командной строкой. Для этого использовал найденный в интернете класс SyncPipe. Необходимо "достать" данные с потока(в виде строки), чтоб потом проверить на "вхождение" подстроки в строку. К примеру я разобрал команду ping, и хочу перехватить строку с адресом 192.168.0.1 и после чего вывести "Hello, world"
import java.io.*;
public class Interception {
public static void main(String[] args) throws Exception {
String[] command = {"cmd"};
ProcessBuilder grep = new ProcessBuilder(command);
grep.redirectErrorStream(true);
Process w = grep.start();
new Thread(new SyncPipe(w.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(w.getInputStream(), System.out)).start();
PrintWriter stdin = new PrintWriter(w.getOutputStream());
stdin.println("ping 192.168.0.1");
stdin.flush();
if (w.getOutputStream().toString().contains("192.168.0.1")) {
System.out.println("Hello, World");
}
if (w.getInputStream().toString().contains("192.168.0.1")) {
System.out.println("Hello, World");
}
}
}
class SyncPipe implements Runnable {
public SyncPipe(InputStream istrm, OutputStream ostrm) {
istrm_ = istrm;
ostrm_ = ostrm;
}
public void run() {
try {
final byte[] buffer = new byte[1024];
System.out.println(buffer.length);
for (int length = 0; (length = istrm_.read(buffer)) != -1; ) {
ostrm_.write(buffer, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private final OutputStream ostrm_;
private final InputStream istrm_;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Добрый деньНикак не могу понять как переименовывать файл в Java, т
Пишу простую программу для шифрования данных в AndroidСтолкнулся с такой проблемой, что нет доступа на запись к exSDcard устройств