2016-10-30 13 views
2

リモートマシン上でコマンドを実行するために、SSHJおよびJScHのようなJava APIを使用しました。私はExpectItExpect4jのようなJava Expect APIについて調べました。しかし、マシンからJavaプロセスにラインごとに出力をストリームする方法を見つけることができませんでした。私はリモートマシンの巨大なファイルに対してgrepを実行しているとし、コマンド全体が完了するのを待つのではなく、巨大な出力を行ごとに自分のプロセスに流したいとします。出来ますか ?もしそうなら、それをどうやるの?SSHJまたはJScHの出力をストリームする

+0

これまでに試したことのいくつかを示す必要があります。 – tom

答えて

0

出力ストリームをファイルに設定すると、これを行うことができます。 下のコードでは、私の出力ストリームはあなたのシステムの "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(); 
関連する問題