28. juni 2003 - 21:24
Der er
6 kommentarer og 1 løsning
Læs fra fil!?
Hey der... Jeg har en fil med flg. indhold: 11 A1 35.0 A2 10.0 12 A3 35.0 A4 10.0 osv. Dette skal jeg have indlæst og opdelt i henholdsvis Int, float og strings. Hvordan bærer jeg mig ad med det?? har det i øjeblikket som en eksamensopg. På forhånd tak
Annonceindlæg fra Barco
Eksempel: import java.io.*; import java.util.*; public class Parse { public static void main(String[] args) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\data.fil"))); String line; while ( (line = reader.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, " "); int iv = Integer.parseInt(st.nextToken()); String sv1 = st.nextToken(); double xv1 = Double.parseDouble(st.nextToken()); String sv2 = st.nextToken(); double xv2 = Double.parseDouble(st.nextToken()); System.out.println(iv + " " + sv1 + " " + xv1 + " " + sv2 + " " + xv2); } } catch (NumberFormatException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Og hvad sker der så i den kode. Jeg får åbnet en BufferedReader, fordi så kan jeg bruge readLine. Når jeg har læse en linie, så bruger jeg StringTokenizer til at dele linien op i stumper adskilt af mellemrum. Integer.parseInt og Double.parseDouble konverterer fra String til henholdsvis int og double.
hejsa Mange tak for besvarelsen... Har dog lige et ekstra spørgsmål :) når man så har en anden fil der også skal indlæses med et total beløb for noget oppe over altså: 20000.00 A1 35.0 A2 10.0 A3 35.0 A4 10.0
hehe hvad gør man så? der er en del af samme kode der kan genbruges men indlæsningen af beløbet skal vel ikke med i while løkken??
Du sætter bare en: double total = Double.parseDouble(reader.readLine()); ind oven over while løkken.
Og hvis heltallet i første kolonne mangler skal: int iv = Integer.parseInt(st.nextToken()); naturligvis tages ud.
Kurser inden for grundlæggende programmering