2010-07-12 4 views
3

bash 데이터를 변수로 가져 오려고합니다. 문제는 그것이 무작위적임에있다. 이 명령은 매번 실행되며 X 응용 프로그램을 시작하는 것으로 볼 수 있습니다. 그러나 내 프로세서가 너무 빨라지거나 느려서 echo 명령을 실행하고 입력 스트림에 버퍼링 된 읽기를 시작할 수 없습니다.Java에서 bash 스크립트의 데이터 손실

어떻게 작동합니까? 어떻게 든 버퍼링 된 리더에서 명령을 실행해야합니다.

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class test1 { 

public static void main() { 

    try { 
    Process proc = Runtime.getRuntime().exec("echo Gosh, I sure hope this comes back to java"); 
    BufferedReader read = new BufferedReader(new InputStreamReader(proc 
    .getInputStream())); 

    while (read.ready()) { 
    System.out.println(read.readLine()); 
    } 
    } catch (IOException e) { 
    System.out.println(e.getMessage()); 
    } 
} 

답변

0

이 당신의 while 루프를 교체 :

String line; 
while ((line = read.readLine())!=null) { 
    System.out.println(line); 
}