1
split
コマンドをJavaプログラムで実行しようとしています。私は、引数--verbose
とコンソールでそれを実行すると、以下のように、それが生成されたチャンクを出力します。実行中のJavaプロセスの印刷出力
creating file 'chunk00'
creating file 'chunk01'
creating file 'chunk02'
しかし、私はJavaプログラムでそれを実行すると、これらの出力は、処理が終了した後に印刷されます。 split
プロセスが実行されている間に出力を得るために必要なのは何ですか?
ProcessBuilder pb = new ProcessBuilder("split", "-a 2", "-d", "-b 52MB","--verbose",path+"/"+db,"chunk");
pb.redirectErrorStream(true);
File workingFolder = new File("/home/hajibaba");
pb.directory(workingFolder);
Process proc = pb.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
// read the output from the command
String s = null;
while ((s = stdInput.readLine()) != null)
{
System.out.println(s);
}
proc.waitFor();
しかし、それは印刷同じ結果を得るためecho
を使用するbashスクリプトのために働く:
私は、次のコードを使用しました。
また、 "-a 2" "-b"、 "52メガバイト" に "-a"、 "2"、また "-b 52メガバイト" に分割しなければなりません –