mercredi 11 février 2015

Datei zeilenweise auslesen

Hallo zusammen,



Ich stehe im Moment vor dem Problem, dass ich die Zeilen einer .txt Datei in eine Liste einlesen will. Die Zeilen der Textdatei sind hierbei UUID's die dann mit der des Spielers die den Server betreten verglichen werden.

Ich habe mal ein bisschen im Internet recherchiert wie man Textdateien in Java auslesen kann und habe mir das hier zusammengebastelt:




Java Code:






  1. public static boolean isRegistered(Player p){



  2. List ids = new List ();



  3. File idfile = new File ("plugins/B3taCommands/registered.txt");



  4. try {



  5. Scanner scanner = new Scanner(idfile);



  6. while(scanner.nextLine() != null){



  7. ids.add(scanner.nextLine());



  8. System .out.println(scanner.nextLine());



  9. }






  10. // TODO Auto-generated catch block



  11. e.printStackTrace();



  12. }



  13. return false;



  14. }









Zum Testen habe ich in meine Textdatei einfach "Test","Test2" und "Test3" (jeweils in einer Zeile) geschrieben.

Wenn ich das ganze jetzt allerdings durchlaufen lasse, kriege ich in der Konsole nur die Ausgabe "Test3" und danach folgenden Error:


Java Code:






  1. java.util.NoSuchElementException : No line found



  2. at java.util.Scanner.nextLine(Unknown Source) ~[?:1.8.0_31]



  3. at com.B3ta.B3taCommands.Main.isRegistered(Main.java:60) ~[?:?]



  4. at com.B3ta.B3taCommands.B3taListener.playerLogin(B3taListener.java:19) ~[?:?]



  5. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method ) ~[?:1.8.0_31]



  6. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]



  7. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]



  8. at java.lang.reflect.Method .invoke(Unknown Source) ~[?:1.8.0_31]



  9. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]



  10. ... 14 more









Kann mir jemand sagen, was ich hier falsch gemacht habe? Und gibt es irgendeine Möglichkeit, die textdatei Zeilenweise mit 'ner for Schleife durchzugehen?



Außerdem habe ich im Internet auch noch andere Varianten gefunden, die nicht den Scanner sondern zB. den FileReader oder den BufferedReader. Was ist genau ist der unterschied zwischen den beiden und dem Scanner? Und was wäre für meine Zwecke wohl am sinnvollsten?



Danke im Voraus

B3ta





Datei zeilenweise auslesen

0 commentaires:

Enregistrer un commentaire