BufferedReader.readLine() attend d'entrée de la console

Je suis en train de lire des lignes de texte à partir de la console. Le nombre de lignes n'est pas connu à l'avance. Le BufferedReader.readLine() lit une ligne, mais après la dernière ligne, il attend à l'entrée de la console. Ce qui devrait être fait pour éviter cela?

Veuillez voir l'extrait de code ci-dessous:

    public static String[] getLinesFromConsole() {
    String strLine = "";
    try {
        //Get the object of DataInputStream
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        String line = "";
        while ((line = br.readLine()) != null)
            strLine += line + "~"; //edited

        isr.close();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }
    return strLine.split("~");
}
Ma conjecture est que le code ne jamais sorties de la boucle while. Et à juste titre. Une idée serait que lorsque vous lisez quelque chose de spécifique, comme "sortie", vous pouvez briser.
Ne pourrait-il pas être while ((line = br.readLine()) != null) strLine += **line** + "~";?
vous devez utiliser une condition pour sortir de la boucle while, par exemple, l'utilisateur type de sortie
Vous semblez être de sauter à chaque seconde ligne, ce qui je pense n'est pas correct et que vous êtes en attente pour la fin du flux d'entrée qui est difficile pour la plupart des utilisateurs de la console de type. 😉
J'ai essayer votre code lorsque vous appelez readline deuxième fois while ((ligne = br.readLine()) != null) strLine += //ici, br.readLine() + "~"; console de commencer à attendre un autre personnage; vous devez utiliser la ligne de la variable OldCurmudgeon proposer cette solution. Et vous pouvez déterminer une sortie de commande.

OriginalL'auteur ambar | 2013-01-29