Ich will hier nicht viel Code posten, deshalb beschreibe ich das Problem so gut ich kann.
Und zwar will ich CSV-Dateien auslesen. Das sind stinknormale Tabellen in denen die Spalten lediglich durch Trennzeichen getrennt werden und das ganze in Form einer Textdatei.
Das Auslesen der Zeilen funktioniert in 99 von 100 Fällen problemlos. Allerdings kommt es vor, dass die Methode nextToken() mit der ich die Textzeile zerstückele eine "NoSuchElement Exception" wirft. Das scheint völlig willkürlich zu geschehen. Auch die CSV-Dateien sehen nicht anders aus als die bei denen es problemlos funktioniert.
Sorry der Code folgt später. Ich habe den nämlich nicht zur Hand. Ich hänge den dann an mein erstes Posting dran. Aber ich kann schon sagen, dass da nicht viel zu sehen sein wird. Einen StriingTokenizer auf einen String anzuwenden birgt kaum Fehlerquellen.
Mir würde ja schon weiterhelfen, was die oben genannte Exception überhaupt bedeutet.
ich hab dir ja nicht widersprochen er wollte schließlich ne kurze Erklärung.
DoktorRuff : Wie du an unsern Antworten erkennen kannst, solltest du mal bevor du auf die Tokens zugreifst kontrollieren ob noch welche da sind , das geht wie Meez bereits geschrieben hat mit hasMoreTokens().
Hast du dir vielleicht auch mal split angeguckt? Das solltest du mittlerweile eher verwenden als StringTokenizer.
Also zuerst mal: Ja ich habe mit hasMoreTokens() abgefragt ob noch welche Folgen, jedenfalls erinnere ich mich daran. Hab den Code ja nicht vor mir liegen. Am besten ihr wartet den Code einfach ab.
Kann ja auch sein, dass er die CSV-Datei aus welchen Gründen auch immer nicht richtig einlesen kann und dann beim Aufruf von nextToken() meckert aber ich verstehe dann nicht wieso hasMoreTokens() "true" liefert.
Ich nehme mal an mit den CSV-Dateien stimmt etwas nicht.
Wie gesagt schließlich funktioniert es in 99 von 100 Fällen.
zu split() kann ich nicht viel sagen. Kenne ich nicht und hab ich noch nie gehört.
So erstmal Schande über mein Haupt. Ich habe mir den Code nochmal angeschaut und festgestellt, dass ich an einer Stelle tatsächlich die Abfrage hasMoreElements() oder hasMoreTokens() vergessen habe.
Hat sich also erledit. Jetzt klappt es auch in 100 von 100 Fällen