2016-04-10 8 views
-2

Ich bin neu in Java. Ich versuche, eine Datei zu durchlaufen und jede Zeichenfolge in eine ArrayList zu schreiben. Um dies zu tun habe ich Code, der wie folgt aussieht:Warum bekomme ich eine Endlosschleife, wenn ich Scanner.hasNext() in einer While-Schleife verwende?

public static void main(String[]args)throws IOException 
{ 
    File customerData = new File("accountData.txt"); 
    Scanner fileReader = new Scanner(customerData); 
    ArrayList<String> stringArrList = new ArrayList<String>(); 

    String currentWord = ""; 
    System.out.println("About to enter while loop");  

    while(fileReader.hasNext()); 
    { 
     currentWord = fileReader.next(); 
     stringArrList.add(currentWord); 
    } 
    System.out.println("We have exited the while loop"); 
} 

Allerdings wird dieser Code aus irgendeinem Grund in einer Endlosschleife stecken. Selbst wenn ich eine Druckanweisung als erste Zeile in den while-Block setze, wird sie nicht ausgeführt.

Die accountData.txt Datei ist wie so angeordnet:

String String String String String 
String String String String String 
... 

ich am ganzen Körper und die oft mal dieses Problem gelesen habe gelesen, weil die Leute Scanner.next nicht verwenden(), um den Zeiger zu bewegen aber ich glaube, dass ich das tue. Ich habe keine Ahnung, was falsch läuft.

Danke für die Hilfe!

Antwort

3

dieses Problem, weil die Menschen mit Scanner.next(), um den Zeiger zu bewegen, aber ich glaube nicht, dass ich die

Sie Scanner.next() verwenden würden tue, mit Ausnahme der ; die Schleife endet, Karosserie. Entfernen Sie es. Ändern

while(fileReader.hasNext()); 
{ 
    currentWord = fileReader.next(); 
    stringArrList.add(currentWord); 
} 

zu

while(fileReader.hasNext()) // <-- no semicolon 
{ 
    currentWord = fileReader.next(); 
    stringArrList.add(currentWord); 
} 
+0

Bitte nur wählen, wie Tippfehler zu schließen oder wählen Sie eine der Hunderte von Dubletten. – Savior