Обработка потока/перехват данных

206
30 марта 2017, 19:42

Хочу добиться интерактивного взаимодействия с командной строкой. Для этого использовал найденный в интернете класс 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_;
}
READ ALSO
Java renameTo - не работает переименование

Java renameTo - не работает переименование

Добрый деньНикак не могу понять как переименовывать файл в Java, т

353
Можно ли обойти ограничение на запись на ExSDcard?

Можно ли обойти ограничение на запись на ExSDcard?

Пишу простую программу для шифрования данных в AndroidСтолкнулся с такой проблемой, что нет доступа на запись к exSDcard устройств

264