13. maj 2002 - 17:11
Der er
9 kommentarer og 1 løsning
Jeg får en NoSuchElementException?
Jeg får en NoSuchElementException? import java.io.*; import java.util.*; class Reader { Reader()throws IOException { BufferedReader læsFil = new BufferedReader(new FileReader( "værelser.txt" )); String fil = læsFil.readLine(); StringTokenizer småStykker = new StringTokenizer(fil); while(fil != null) { String stykke = småStykker.nextToken(); int nr = Integer.parseInt(stykke); String stykke2 = småStykker.nextToken(); int størrelse = Integer.parseInt(stykke2); String status = småStykker.nextToken(); System.out.println(nr+" "+størrelse+" "+status); } } public static void main(String[] aslan)throws IOException { new Reader(); } }
Annonceindlæg tema
public static void main(String[] aslan)throws IOException kan man godt det? burde der ikke stå public static void main(String[])throws IOException
Din while løkke kører for evigt! derfor prøver du at hente nextToken igen og igen og igen import java.io.*; import java.util.*; class Reader { Reader()throws IOException { BufferedReader læsFil = new BufferedReader(new FileReader( "værelser.txt" )); String fil = læsFil.readLine(); StringTokenizer småStykker = new StringTokenizer(fil); if(fil != null) { String stykke = småStykker.nextToken(); int nr = Integer.parseInt(stykke); String stykke2 = småStykker.nextToken(); int størrelse = Integer.parseInt(stykke2); String status = småStykker.nextToken(); System.out.println(nr+" "+størrelse+" "+status); } } public static void main(String[] aslan)throws IOException { new Reader(); } }
problemet er at jeg skal blive ved med at læse fra filen indtil den er tom og med if(fil != null) gør den det kun en gang!
Du læser kun 1 linje ud fra læsFil, nemlig i linjen String fil = læsFil.readLine(); Hvis du vil læse flere så skal de vel se ca. sådan her ud: while ((fil = læsFil.readLine()) != null) { // Den kode der skakl gøre noget med linjen. } Denne løkke vil kører så længe der er flere linjer i din fil.
C:\Documents and Settings\aslan\Skrivebord\læs fil\Reader.java:18: incompatible types found : java.lang.String required: boolean while((fil = læsFil.readLine()) = null) ^ 1 error Tool completed with exit code 1
fik lige rettet til : while((fil = læsFil.readLine()) != null) Men den giver stadig NoSuchElementException?
Du skal også lave din tokenizer inde i while løkken.
Bare en lille kommentar: navnet Reader benyttes af en abstrakt klasse i java.io pakken så måske skulle du undgå det navn i større kode.
Ok carstenknudsen det skal jeg huske!
Kurser inden for grundlæggende programmering