txt reader Problem

Permafrost

Mitglied
Ich hab mal wieder ein Problem-.-
Ich bekomme eine endlos schleife könnt ihr mir helfen?
danke fürs lesen^^

Java:
private static Animal reader() throws IOException {
        Scanner oScan = new Scanner(new File(oDatei));
        Animal oGetIn = null;
        Birthday oDate = new Birthday();
        String sName = oScan.next(), sNickname = oScan.next(), sDate = oScan.next();

        while(oScan.hasNext()){
            if (sName.equalsIgnoreCase("Katze")) {
                oGetIn = new Cat();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Hund")) {
                oGetIn = new Dog();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Maus")) {
                oGetIn = new Mouse();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
        }
        oScan.close();
        return oGetIn;
    }
 
G

Gast2

Gast
In deiner while Schleife rufst du nirgends nochmal oScan.next() auf. Wenn die Schleife also einmal betreten wird (weil es noch nen Token gibt), dann wird sich an der Tatsache auch nichts mehr ändern.
 

diggaa1984

Top Contributor
soweit wie ich das sehe, geht er in die while-schleife rein, da noch etwas im Scanner rumliegt, aber du liest nie weitere Sachen mittels #next aus, daher wird es immer ein "hasNext" geben.
 
N

nillehammer

Gast
In Zeile 5 rufst Du drei mal next auf. D.h. Du hast schonmal drei Werte wech. Wenn Dir diese drei Werte reichen, brauchst Du auf dem Scanner garnix mehr aufzurufen. Ansonsten muss innerhalb der while-Schleife irgendwo ein nextXXX stehen, um die weiteren Werte auch einzulesen. Im Moment forderst Du den Nutzer zwar zu einer Neueingabe auf, holst sie Dir dann aber nirgends.
 
G

Gast2

Gast
Ja, in Zeile 5 liest du schon aus dem Stream. Danach fragst du immer wieder obs noch mehr Werte gibt, die du dann aber nicht ausliest.

Nimm einfach die while Schleife raus, die brauchst du nicht.
 

diggaa1984

Top Contributor
im übertragenen sinn hast du soetwas
Java:
boolean keeprunning = true;

while (keeprunning) {
   doSomethingButStop();
}
 

Permafrost

Mitglied
hab ich gemacht jetzt liest er gar nix mehr...
ich lese das ja von einer erstellten text datei aus die selbst in meinem programm erstelt wirt und in der datei ist mom nur 2 katzen und ein hund drinnen kann es deswegen sein?
 
B

bygones

Gast
Ich hab mal wieder ein Problem-.-
Ich bekomme eine endlos schleife könnt ihr mir helfen?
danke fürs lesen^^

Java:
private static Animal reader() throws IOException {
        Scanner oScan = new Scanner(new File(oDatei));
        Animal oGetIn = null;
        Birthday oDate = new Birthday();
        String sName = oScan.next(), sNickname = oScan.next(), sDate = oScan.next();

        while(oScan.hasNext()){
            // IN DIESER SCHLEIFE RUFST DU NIEMALS oScan.next() AUF
            // ERGO GIBT ES IMMER NOCH WAS UND DAS IST DIE ENDLOSSSCHLEIFE !
        }
        oScan.close();
        return oGetIn;
    }
also entweder auch im while next() rufen oder while schleife loeschen
 
B

bygones

Gast
Ich hab mal wieder ein Problem-.-
Ich bekomme eine endlos schleife könnt ihr mir helfen?
danke fürs lesen^^

Java:
private static Animal reader() throws IOException {
        Scanner oScan = new Scanner(new File(oDatei));
        Animal oGetIn = null;
        Birthday oDate = new Birthday();
        // meinst du vielleicht das ???
        while(oScan.hasNext()){
             String sName = oScan.next(), sNickname = oScan.next(), sDate = oScan.next();
             if (sName.equalsIgnoreCase("Katze")) {
                oGetIn = new Cat();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Hund")) {
                oGetIn = new Dog();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Maus")) {
                oGetIn = new Mouse();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
        }
        oScan.close();
        return oGetIn;
    }
ohne deinen "neuen" code, der nicht geht wirds ein "ins blaue gerate" werden
 

diggaa1984

Top Contributor
wenn nur 3 datensätze drin stehen, zeige doch bitte mal den inhalt der datei .. im prinzip vermute ich gerade musst du nur nochmal sowas machen innerhalb der while-schleife (ohne berücksichtung von Fehlkonstellationen)

Java:
String sName;
String sNickname;
String sDate;

while (oScan.hasNext()) {
sName = oScan.next(); 
sNickname = oScan.next(); 
sDate = oScan.next();

//alles wie bisher
} //while
 

Permafrost

Mitglied
das ist die writer metode hilft die evtl etwas oder was bräuchtet ihr noch *lieb guck
Java:
    private static String[] writer(List<Animal> oZoo) {
        List<String> oTypes = new LinkedList<String>();
        PrintWriter oPW = null;
        String[] abSort = null;
        try {

            oPW = new PrintWriter(oDatei);

        } catch (IOException ex) {

            System.err.println("Konnte Datei nicht erstellen");
        }
        oTypes.addAll(getAnimalTypes(oZoo));
        for (String sTypes : oTypes) {

            List<String> animalNames = getAnimalNames(oZoo, sTypes);
            abSort = Sort(animalNames.toArray(new String[0]));
            for (int a = 0; a < abSort.length; ++a) {
                oPW.println("\r\n" + sTypes + ": \r\n");
                oPW.println(abSort[a]);

            }

        }

        oPW.close();
        System.out.println("Datei gespeichert!");


        return abSort;
    }
Hier ist der inhalt der datei
Code:
Katze: 

asldnfl 12.11.1986

Katze: 

uscho 12.11.1986

Hund: 

ljbasfl 12.11.1986
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
edit ok, hast editiert! :D

edit²: gut dann schau dir mal Beitrag #11 und #12 an, dann solltest der Lösung schon näher kommen!
Du liest momentan nur einen Datensatz aus, verarbeitest den in der Schleife. Nun musst aber auch die anderen Daten auslesen, sonst is eben immer noch etwas nicht-verarbeitetes im Scanner enthalten!
 

Permafrost

Mitglied
er liest immer noch nix ein:(
Java:
 private static Animal reader() throws IOException {
        Scanner oScan = new Scanner(new File(oDatei));
        Animal oGetIn = null;
        Birthday oDate = new Birthday();
        String sName, sNickname, sDate;

        while (oScan.hasNext()) {
        sName = oScan.next();
        sNickname = oScan.next();
        sDate = oScan.next();

        
            if (sName.equalsIgnoreCase("Katze")) {
                oGetIn = new Cat();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Hund")) {
                oGetIn = new Dog();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
            if (sName.equalsIgnoreCase("Maus")) {
                oGetIn = new Mouse();
                zoo.add(oGetIn);
                oGetIn.setNickname(sNickname);
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);
            }
        }
        
        return oGetIn;
    }

gerne doch
 
Zuletzt bearbeitet:

Permafrost

Mitglied
ich hab den fehler gefunden lach echt witzig find ich
Java:
if (sName.equalsIgnoreCase("Katze")) {

und neu :
Java:
if (sName.equalsIgnoreCase("Katze:")) {
 

Permafrost

Mitglied
wenn ich schon dabei bin da gefällt mir noch etwas nicht an meinem code hättet ihr ein beispiel wie ich das ändere da ja hier eh nicht geprüft wird ob die syntax richtig ist.
Java:
                if (!oDate.checkSyntax(sDate)) {
                    System.err.println("Bitte geben Sie erneut das Datum ein!");
                    
                }
                oGetIn.setBd(oDate);

ach hab schon eine lösung die zwar auch nicht so toll ist aber wenigstens sieht es besser aus.
Java:
                oDate.checkSyntax(sDate);
                oGetIn.setBd(oDate);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
M Reader-Problem Java Basics - Anfänger-Themen 5
A Problem Reader Java Basics - Anfänger-Themen 39
T Writer/Reader Problem Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
Textsurfer Erste Schritte CSV Import Reader Writer Java Basics - Anfänger-Themen 0
A Reader für Benutzereingabe in Eclipse importieren Java Basics - Anfänger-Themen 3
W Reader Java Basics - Anfänger-Themen 9
W Java XML-Reader: Content not allowed in Prolog Java Basics - Anfänger-Themen 7
D Jpg in BufferedImage Reader oder Array ablegen? Java Basics - Anfänger-Themen 5
H "Conways GameofLife - Vom Reader ins Array" Java Basics - Anfänger-Themen 5
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
Sogomn Input/Output Reader, Writer und Streams Java Basics - Anfänger-Themen 6
L buffered reader produziert zu viele und seltsame zeichen Java Basics - Anfänger-Themen 2
A Interface Reader interface verwenden Java Basics - Anfänger-Themen 4
S Input/Output Reader: "null" wenn While-Ende Java Basics - Anfänger-Themen 5
F Reader - brauche Hilfe Java Basics - Anfänger-Themen 19
Haubitze_Broese RSS-Reader? Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Developer_X Sav-Data reader, fehler Java Basics - Anfänger-Themen 2
V Buffered Reader, erst ab bestimmter Zeile auslesen? Java Basics - Anfänger-Themen 8
K Probleme mit Buffered Reader Java Basics - Anfänger-Themen 8
P Buffered Reader an Anfang setzen Java Basics - Anfänger-Themen 4
D RSS Reader mit Redaktionssystem Java Basics - Anfänger-Themen 7
L Streams und Reader/Writer Java Basics - Anfänger-Themen 8
F Was gibt der Buffered Reader zurück bei Dateiende? Java Basics - Anfänger-Themen 2
H Buffered Reader Java Basics - Anfänger-Themen 7
G Buffered REader, String, ist mein code korrekt? Java Basics - Anfänger-Themen 4
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben