Cotul Skrevet 9. februar 2006 Del Skrevet 9. februar 2006 Hei. Sitter og skal skrive et lite java program. Men har et problem jeg ikke finner ut av. Jeg skal lese fra en fil, som deretter skal bruke infoen for å lage objekter. Metoden: void fraFil(){ skjerm.outln(" *** Hente registeret fra fil *** "); In frafil = new In("fil.txt"); while(!frafil.endOfFile()){ String navn = frafil.inWord(";"); String kjønn = frafil.inWord(";"); String mor = frafil.inWord(";"); String far = frafil.inWord(";"); String ekteskap = frafil.inWord(";"); int antb = frafil.inInt(";"); if(k.equals("mann")){ Mann ma = new Mann(navn, kjønn, mor, far, ekteskap); regnavn.put(navn, ma); Mann p = (Mann) regnavn.get(navn); p.antba = antb; while(antb > 0){ String npb = frafil.inWord(";"); Barn b = new Barn(npb); p.barna.put(npb, b); antb--; } } if(k.equals("kvinne")){ Kvinne kv = new Kvinne(navn, kjønn, mor, far, ekteskap); regnavn.put(navn, kv); Kvinne kvi = (Kvinne) regnavn.get(navn); int plass = 0; kvi.antba = antb; while(antb > 0){ String nb = frafil.inWord(";"); kvi.bar[plass] = nb; antb--; plass++; } } } frafil.close(); } feil beskjeden: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind ex out of range: -1 at java.lang.String.substring(String.java:1762) at easyIO.In.getCause(In.java:1299) at easyIO.In.inInt(In.java:960) at FolkeRegister.fraFil(Oblig1.java:255) at FolkeRegister.kommandol°kke(Oblig1.java:32) at Oblig1.main(Oblig1.java:7) filen den leser fra ser slik ut: navn;kjønn;mor;far;ekteskap;antall barn;navnpå barn;navnpånestebarn; osv ettersom hvor mange barn det er. etterpå starter neste person på neste linje. Jeg har prøv å skrive ut hver enese variabel til skjerm etter at den er lest fra filen og det funker gjennom hele filen. Noen som ser hva som er galt eller har en anelse om hva jeg kan gjøre? Bruker forresten easyIO, eneste er forskjellig måte å skrive til skjerm/fil fra bruker. Lenke til kommentar
blackbrrd Skrevet 10. februar 2006 Del Skrevet 10. februar 2006 (endret) Hei, det står at feilen oppstår på linje 255 i Oblig1.java, hvilken linje er det? Kopier inn fila du prøver å lese også, ellers er det jo så å si umulig å si noe som helst... Endret 10. februar 2006 av blackbrrd Lenke til kommentar
Cotul Skrevet 10. februar 2006 Forfatter Del Skrevet 10. februar 2006 (endret) int antb = frafil.inInt(";"); <-- er linje 255 skrev feil linje først.. Endret 10. februar 2006 av Freud Lenke til kommentar
Cotul Skrevet 10. februar 2006 Forfatter Del Skrevet 10. februar 2006 josefine;kvinne;mettemor;petrra;?;1;petrus; mette;kvinne;mettemor;mettefar;knut;1;julie; petrus;mann;josefine;josefan;?;0; josefan;mann;josemor;josefar;?;1;josef; knut;mann;knutmor;knutfar;mette;1;julie; Fila jeg prøver å lese... Lenke til kommentar
mikaelandre Skrevet 10. februar 2006 Del Skrevet 10. februar 2006 kan du telle hvor mange ganger løkka kjører? stopper den på første fosøk, eller på siste? og hvis den ikke er så veldig lang, kan du poste inInt() metoden? Lenke til kommentar
blackbrrd Skrevet 10. februar 2006 Del Skrevet 10. februar 2006 denne linja petrus;mann;josefine;josefan;?;0; har bare 6 felter, du leser 7 i hver løkkke, dette funker ikke... Lenke til kommentar
blackbrrd Skrevet 10. februar 2006 Del Skrevet 10. februar 2006 oppgaven din spesifiserer forresten ikke hvordan du skal lese og skrive til fil, så du kunne liksågodt ha brukt ObjectOutputStream og ObjectInputStream for lesingen, da blir det her hele 3 linjer for lesing og 3 linjer for skriving Ser forresten at det jeg skrev over ikke nødvendigvis er riktig, du har jo en if, så du leser ikke den 7 gangen i den løkken... Lenke til kommentar
Cotul Skrevet 12. februar 2006 Forfatter Del Skrevet 12. februar 2006 jeg fikk løst problemet med å først gå gjennom og telle hvor mage linjer det er, og dermed gjennomføre løkka så mange ganger. forstår ikke helt hvorfor dette måtte gjøres men det funker har aldri prøvd ObjectOutputStream og ObjectInputStream .. så kan ikke si noe om det Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå