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:
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:
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
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:
public static boolean isRegistered(Player p){
List ids = new List();
File idfile = new File("plugins/B3taCommands/registered.txt");
try {
Scanner scanner = new Scanner(idfile);
while(scanner.nextLine() != null){
ids.add(scanner.nextLine());
System.out.println(scanner.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
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:
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source) ~[?:1.8.0_31]
at com.B3ta.B3taCommands.Main.isRegistered(Main.java:60) ~[?:?]
at com.B3ta.B3taCommands.B3taListener.playerLogin(B3taListener.java:19) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_31]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_31]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
... 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