Avatar billede zyphron Nybegynder
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
Avatar billede arne_v Ekspert
28. juni 2003 - 21:32 #1
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();
        }
    }
}
Avatar billede arne_v Ekspert
28. juni 2003 - 21:34 #2
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.
Avatar billede zyphron Nybegynder
29. juni 2003 - 16:22 #3
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
Avatar billede zyphron Nybegynder
29. juni 2003 - 16:23 #4
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??
Avatar billede arne_v Ekspert
29. juni 2003 - 16:26 #5
Du sætter bare en:

double total = Double.parseDouble(reader.readLine());

ind oven over while løkken.
Avatar billede arne_v Ekspert
29. juni 2003 - 16:27 #6
Og hvis heltallet i første kolonne mangler skal:

int iv = Integer.parseInt(st.nextToken());

naturligvis tages ud.
Avatar billede zyphron Nybegynder
29. juni 2003 - 16:53 #7
Okai perfekt
mange tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester