Lesen aus Datei (java.util.NoSuchElementException)

deen

Mitglied
Hallo liebe Community,
bei dem Lesen einer Datei bekomme ich immer die oben angegebene Fehlermeldung.
Ich google schon seit Stunden aber komme zu keinem Lösungsweg :noe:
Vorschläge? :bahnhof:

Tester
Java:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.*;

import javax.crypto.*;
import javax.crypto.spec.*;
public class test {
  public static void main(String[] args){
	  
	  DataHandler.load();
	  System.out.println(Benutzer.user[0]+Benutzer.user[1]+Benutzer.user[2]);
  }
  
  


}

Benutzer Klasse
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Timestamp;
import java.text.*;


public class Benutzer {
	static int[]password = new int[100];
    
	static int[] worktime=new int[100];
	static int[] sells=new int[100];
	static String[] user = new String[100];
	static double[] earned=new double[100];	
 }

DataHandler
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Vector;


public class DataHandler {

public static void load(){

	try {
		Scanner s = new Scanner(new File("userdata.txt"));
		for(int i = 0; s.hasNext(); i++){
			  Benutzer.user[i]=s.next();
			  Benutzer.password[i]=s.nextInt();
			  Benutzer.sells[i]=s.nextInt();
			  Benutzer.earned[i]=s.nextInt();
			  Benutzer.worktime[i]=s.nextInt();
		 }
		 
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	}

 }


public static void save(){
          try {
              PrintWriter writer = new PrintWriter(new File("userdata.txt"));
              for(int i =0; Benutzer.user[i]!= null; i++){
            		  writer.println(Benutzer.user[i]);
            		  writer.println(Benutzer.password[i]);
            		  writer.println(Benutzer.sells[i]);
            		  writer.println(Benutzer.earned[i]);
            		  writer.println(Benutzer.worktime[i]); 
          }
          writer.close();  
          } catch (FileNotFoundException e) {     
              e.printStackTrace();
          }
      } 
}
 

Joose

Top Contributor
bei dem Lesen einer Datei bekomme ich immer die oben angegebene Fehlermeldung.

Bei einem Fehler steht auch immer ein StackTrace dabei, über diesen StackTrace lässt sich die Zeile herausfinden, welche den Fehler verursacht.
Es wäre praktisch wenn du diese Information auch posten würdest.

Ich google schon seit Stunden aber komme zu keinem Lösungsweg :noe:

Und nach was hast du gesucht?
Was hast du gefunden und probiert?
 
Zuletzt bearbeitet:

deen

Mitglied
Die Gesamte Fehlermeldung ist:

Java:
Exception in thread "main" java.util.NoSuchElementException
	at java.util.Scanner.throwFor(Unknown Source)
	at java.util.Scanner.next(Unknown Source)
	at DataHandler.load(DataHandler.java:19)
	at test.main(test.java:12)
 

Joose

Top Contributor
Java:
Exception in thread "main" java.util.NoSuchElementException
	at java.util.Scanner.throwFor(Unknown Source)
	at java.util.Scanner.next(Unknown Source)
	at DataHandler.load(DataHandler.java:19)
	at test.main(test.java:12)

Sprich ein Objekt des Typs "Scanner" wirft beim Aufruf der Methode "next()" die Exception "NoSuchElementException"
-> Dieser Link sollte dir die Lösung zeigen :)

PS: Die Worte die ich oben zwischen "" geschrieben habe, habe ich direkt für meine Suche bei Google genutzt (inkl "Java" ;)).
 

Admiral Helmut

Aktives Mitglied
Bist du dir sicher dass in deiner Eingabe Datei, alle Werte in der richtigen Reihenfolge und auch die Zuordnung String, int etc stimmt.

Poste sie doch mal. Hört sich so an als wollte er was einlesen was nicht geht.

Gruß Helmut
 

deen

Mitglied
Oh habe ich ganz vergessen, entschuldigung!

Hier:

Dennis
1337
0
1
0
asdfsad
6971
0
1
0
safsadfsd
7056
0
1
0
test
3975
0
1
0
tests
6892
0
1
0
 

Admiral Helmut

Aktives Mitglied
HHmm ich würde mal testen ob es geht, wenn du aus deinem Double auch in int machst und alles in der eingabedatei mal in eine zeile mit leerzeichen getrennt.
 

deen

Mitglied
Ich hab sie gelesen aber verstehe nicht wie die Fehlermeldung zustande kommt, da ich ja vor dem Ablauf der Schleife prüfe, ob noch Daten vorhanden sind.
 

nvidia

Bekanntes Mitglied
[...]ich ja vor dem Ablauf der Schleife prüfe, ob noch Daten vorhanden sind.

Eigentlich sollte es dir langsam dämmern.

Zitat aus der Dokumentation: "A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods."

Zitat für "hasNext(): "Returns true if this scanner has another token in its Input"

Zitat für "next()": "Finds and returns the next complete token from this scanner. A complete token is preceded and followed by input that matches the delimiter pattern."

Du verstehst das Wort "another" in dem Kontext, ja? Und dann schau dir an was du in der Schleife machst.
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Ich hab sie gelesen aber verstehe nicht wie die Fehlermeldung zustande kommt, da ich ja vor dem Ablauf der Schleife prüfe, ob noch Daten vorhanden sind.
... aber nicht inerhalb der Schleife.
Lass dir mal jedes Token einzeln ausgeben. So z. B. :
Java:
for(int i = 0; s.hasNext(); i++){
    String user = s.next();
    System.out.println("User " + i + " : " + user);
    Benutzer.user[i]=user;
    int passwort = s.nextInt();
    System.out.println("Passwort  " + i + " : " + passwort);
    Benutzer.password[i]=passwort;
	//...usw.
}
Vielleicht kommt dann die Erleuchtung.
Für die Zukunft:
1. Stack traces anschauen. Wenn du dir nicht sicher bist, wie man sie liest, dann übe es! Es ist allemal schneller, einen stack trace zu lesen als "stundenlang zu googlen" (was sowieso nach Phrase klingt wenn man nicht imstande ist zu sagen wonach).
2. Stack traces posten.
3. Wenn es bei der Programmausführung zu einem Fehler kommt: finde heraus, unter welchen Bedingungen der entsprechende Programmteil ausgeführt wurde. Wenn die Fehlermeldung sinngemäß lautet "ich kann mit der Variable nix anfangen", dann laß dir die Variable ausgeben. Auch das ist schneller als stundenlang zu googlen oder im Forum auf eine Antwort zu warten.
 
Zuletzt bearbeitet:

deen

Mitglied
Sorry aber langsam weiß ich garnicht mehr weiter
Ich prüfe jetzt innerhalb der Schleife ob noch Daten da sind. IMMERNOCH FALSCH?

Java:
 ry {
		Scanner s = new Scanner(new File("userdata.txt"));
		for(int i = 0;i<Benutzer.user.length; i++){
			if(s.hasNext()){
				Benutzer.user[i]=s.next();
				  Benutzer.password[i]=s.nextInt();
				  Benutzer.sells[i]=s.nextInt();
				  Benutzer.earned[i]=s.nextInt();
				  Benutzer.worktime[i]=s.nextInt();	
			}else{break;}
			  
		 }
		 
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	}
 

Harry Kane

Top Contributor
Was ist an meinem Post und dem Codeschnipsel so schwer zu verstehen?
Lasse dir jedes einzelne Token ausgeben. Dann siehst du genau, bei welchem "Datensatz" die Exception auftritt, und wahrscheinlich auch wieso.
 

nvidia

Bekanntes Mitglied
Sorry aber langsam weiß ich garnicht mehr weiter
Ich prüfe jetzt innerhalb der Schleife ob noch Daten da sind. IMMERNOCH FALSCH?

Die Dokumentation sagt hasNext(): "Returns true if this scanner has another token in its Input", another heisst hier "ein weiteres [Token]" wobei die Betonung auf ein liegt. Also ein wie eins wie 1. Was machst du in der Schleife?
 

arilou

Bekanntes Mitglied
Also bei mir funktioniert das ursprüngliche Programm mit den oben angegebenen Daten.
Ohne irgend eine Fehlermeldung.

Klar ist's nicht sehr schön, nur auf 1 "hasNext" zu prüfen, ob noch "ein weiterer Datensatz" da ist, und dann 5* zu lesen, aber es funktioniert durchaus.
Kompilier' das ursprüngliche Programm nochmal komplett neu, prüf' nochmal of userdata.txt immer 1 Name + 4 Ints hat, aber eigentlich muss das tun.
Laut StackTrace stammt die NoSuchElement-Fehlermeldung von .hasNext() - was eigentlich nicht sein darf.
 
Zuletzt bearbeitet:

nvidia

Bekanntes Mitglied
[...]
Klar ist's nicht sehr schön, nur auf 1 "hasNext" zu prüfen, ob noch "ein weiterer Datensatz" da ist, und dann 5* zu lesen, aber es funktioniert durchaus.[...]

Du möchtest also schlechten Code propagieren? Lass die Datei nur 1-4 Zeilen mehr drin haben und alles fliegt dir um die Ohren. Wer weiß wie der OT den Text noch editiert hat.
 

Harry Kane

Top Contributor
Ich möchte v.a. die Frage des TO beantworten.
Und inwiefern hast du das getan?
Deine Antwort lautet "Es gibt keinen Fehler". So what?
Ich habe gerade keine Möglichkeit, irgendwas zu testen, aber wenn sich die Datei des TO´s mit dem geposteten Programm des TO´s prozessieren läßt, ist irgendwo ein Riesenwurm drin:
TO hat die falsche Eingabedatei gepostet.
TO hast das falsche Programm gepostet.
...
Und um das rauszufinden, muss der TO auf jeden Fall eine andere Debugging-Strategie haben (oder überhaupt erst mal eine). Darauf wollte ich zumindest mit meinen Posts hinaus.
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Also: Der vom TO gepostete Code funktioniert mit der von ihm geposteten Eingabedatei fehlerfrei.
Schlussfolgerung: Der TO hat entweder einen anderen Code oder eine andere Eingabedatei.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Delphi-Record mit Java aus Datei lesen Java Basics - Anfänger-Themen 11
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
G Excle datei aus resources folder finden und lesen Java Basics - Anfänger-Themen 5
J Datei aus Projektfolder lesen Java Basics - Anfänger-Themen 12
B Aus Datei lesen Java Basics - Anfänger-Themen 23
B Aus Datei lesen Java Basics - Anfänger-Themen 0
C Input/Output Datei aus Startverzeichnis lesen Java Basics - Anfänger-Themen 6
G Input/Output Aus txt-Datei lesen, aus Ordner Java Basics - Anfänger-Themen 1
MaxG. Input/Output Datei lesen Java Basics - Anfänger-Themen 3
H Aus wav-datei lesen und in neue wav-datei speichern Java Basics - Anfänger-Themen 10
D Methoden Array aus Datei lesen und weitergeben? Java Basics - Anfänger-Themen 7
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bis zu einem bestimmten Punkt aus Datei lesen Java Basics - Anfänger-Themen 2
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
E Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist Java Basics - Anfänger-Themen 3
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
J Aus Datei lesen und ausgeben Java Basics - Anfänger-Themen 4
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
G Datei zeilenweise lesen Java Basics - Anfänger-Themen 19
M Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen? Java Basics - Anfänger-Themen 3
S Compiler-Fehler jOpenDocument Kompelierfehler - ODS Datei lesen Java Basics - Anfänger-Themen 2
T BufferReader soll datei mehrmals lesen Java Basics - Anfänger-Themen 13
S Datei aus JAR lesen. Java Basics - Anfänger-Themen 9
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
J Können mehere Threads parallel eine Datei lesen? Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
S Input/Output aus Datei lesen Java Basics - Anfänger-Themen 6
A Datei relativ zur Lage des jar-files lesen Java Basics - Anfänger-Themen 16
Gossi Input/Output .csv Datei wird beim Lesen bearbeitet? Java Basics - Anfänger-Themen 8
C Wörter aus einer txt datei lesen Java Basics - Anfänger-Themen 19
E txt Datei schreiben und lesen Java Basics - Anfänger-Themen 9
T Datei über das Netz lesen Java Basics - Anfänger-Themen 2
W Aus Datei lesen Java Basics - Anfänger-Themen 15
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
F Kann RandomAccessFile Zip Datei lesen? Java Basics - Anfänger-Themen 14
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
J UTF8 txt-Datei lesen Java Basics - Anfänger-Themen 13
A Datei Lesen und Schreiben in gleichen Klasse Java Basics - Anfänger-Themen 3
Haubitze_Broese aus einer Datei lesen? Java Basics - Anfänger-Themen 6
S Array Daten in Binär Datei schreiben/lesen Java Basics - Anfänger-Themen 11
K aus Datei lesen Java Basics - Anfänger-Themen 3
S Datei lesen Java Basics - Anfänger-Themen 27
M line.separator: Problem beim Lesen einer Datei Java Basics - Anfänger-Themen 11
K Text aus einem Datei lesen , und im JTextArea ausgeben. Java Basics - Anfänger-Themen 3
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
calzone FileReader, lesen ohne die Datei zu überschreiben? Java Basics - Anfänger-Themen 3
J Problem mit Datei lesen und schreiben Java Basics - Anfänger-Themen 8
M Datei Lesen Und Schreiben! -.- Java Basics - Anfänger-Themen 7
fbn Datei als Ganzes lesen (nicht zeilenweise) Java Basics - Anfänger-Themen 8
M Probleme mit dem Lesen einer m3u-Datei Java Basics - Anfänger-Themen 8
H Datei zeilenweise rückwärts lesen Java Basics - Anfänger-Themen 9
R Sequentielle Datei lesen und schreiben Java Basics - Anfänger-Themen 5
G FileInputStream--> Zahlen aus Datei lesen Java Basics - Anfänger-Themen 7
S Aus Datei lesen und im Array speichern Java Basics - Anfänger-Themen 2
J Datei lesen und in Array speichern Java Basics - Anfänger-Themen 5
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
P Teile aus Datei lesen und zus mit Strings in Datei speichern Java Basics - Anfänger-Themen 4
D excel datei Spalten lesen? Java Basics - Anfänger-Themen 7
J Kommandos aus Datei lesen Java Basics - Anfänger-Themen 13
J Datei zeilenweise lesen. Java Basics - Anfänger-Themen 4
S Werte aus Datei lesen und in Variable abspeichern Java Basics - Anfänger-Themen 4
alexpetri Datei in String lesen Java Basics - Anfänger-Themen 6
K XPath werter aus XML-Datei lesen Java Basics - Anfänger-Themen 6
M Datei lesen und Char für Char wiedergeben Java Basics - Anfänger-Themen 28
K Datei öffnen, lesen, bearbeiten, in neuer datei speichern Java Basics - Anfänger-Themen 12
T Zahlen aus einer Datei lesen Java Basics - Anfänger-Themen 3
B Wie eine bestimmte Zeile einer Txt-Datei lesen ? Java Basics - Anfänger-Themen 5
H Streams etc. erster Versuch Zeilen aus einer Datei zu lesen Java Basics - Anfänger-Themen 6
T Exception-Handling beim Lesen einer XML-Datei mit XMLDecoder Java Basics - Anfänger-Themen 4
R Objekt aus Datei lesen Java Basics - Anfänger-Themen 5
J Class datei lesen Java Basics - Anfänger-Themen 2
T gezieltes lesen/schreiben in datei Java Basics - Anfänger-Themen 9
D ein File(Datei) lesen und diesen zu einem Hashmap hinfügen? Java Basics - Anfänger-Themen 5
A Datei lesen Java Basics - Anfänger-Themen 12
L Zeile aus Datei lesen Java Basics - Anfänger-Themen 5
S Datei lesen und speichern Java Basics - Anfänger-Themen 8
reibi Datei von hinten lesen Java Basics - Anfänger-Themen 11
G Mehrere Zahlen aus Datei lesen Java Basics - Anfänger-Themen 3
C Komische Zeichen beim Lesen aus einer .reg-Datei Java Basics - Anfänger-Themen 2
H Datei lesen und an bestimmter Stelle schreiben Java Basics - Anfänger-Themen 4
F Aus Byte Datei lesen Java Basics - Anfänger-Themen 4
B String aus Datei lesen + Länge berechnen Java Basics - Anfänger-Themen 2
L Strings von Datei lesen und in TextArea schieben Java Basics - Anfänger-Themen 3
M Zufällige Zeile aus einer Datei lesen Java Basics - Anfänger-Themen 2
J Lesen einer Datei in einen String oder Char? Java Basics - Anfänger-Themen 3
S Datei lesen und in array rein Java Basics - Anfänger-Themen 10
tobiasbeil Von Datei byte für byte lesen und in ein Array einfügen. Java Basics - Anfänger-Themen 11
J Datei-Details /-Infos wie Kommentare, Autor lesen/schreiben Java Basics - Anfänger-Themen 2
F Datei lesen Java Basics - Anfänger-Themen 12
S Mit Scanner eine txt Datei lesen Java Basics - Anfänger-Themen 2
A Variablen in eine Datei speichern und lesen Java Basics - Anfänger-Themen 2
V Beim lesen aus einer Datei bekomme ich fehlerhafte Strings. Java Basics - Anfänger-Themen 2
G aus datei lesen und in liste einfügen Java Basics - Anfänger-Themen 5
B Datei lesen und schreiben Java Basics - Anfänger-Themen 2
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
B Aus Datei Lesen -> Compiler fehler Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben