2010-07-12 7 views
3

J'essaye d'obtenir des données de bash dans une variable. Le problème est que c'est tellement aléatoire. La commande s'exécute à chaque fois, je peux le voir en faisant démarrer une application X. Cependant, mon processeur peut être trop rapide ou trop lent pour émettre la commande echo et démarrer une lecture tamponnée dans le flux d'entrée.Perdre des données à partir de bash Script en Java

Comment puis-je faire fonctionner cela? J'ai besoin d'émettre la commande à l'intérieur d'un lecteur tamponné en quelque sorte.

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()); 
    } 
} 

Répondre

0

Remplacez votre boucle while avec ceci:

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