Avatar billede coldasice Nybegynder
13. april 2003 - 11:47 Der er 11 kommentarer og
1 løsning

læsning af fil......

Hvordan refererer man til den fil man vil ha læst ved hjælp af FileReader ?

try {
    FileReader file = new FileReader(eksempel.txt);
    .............
    ............
Avatar billede arne_v Ekspert
13. april 2003 - 11:52 #1
Du mener formentligt:

FileReader file = new FileReader("eksempel.txt");

Og den har ikke læst en fil.

Den har åbnet en fil.

Som du så kan læse fra med read metoden.
Avatar billede coldasice Nybegynder
13. april 2003 - 11:56 #2
Den kan ikke finde filen, programmet ender med exeption "filen ikke fundet"

public class Test {
    public static void main(String[] args) throws IOException {

    MemberTreeList trae = new MemberTreeList();
   


    try {
        FileReader file = new FileReader(eksempel.txt);
   
        BufferedReader line = new BufferedReader(file);

        String linie = line.readLine();
        while (linie != null){
 
   
              trae.insert(linie, "");
              linie = line.readLine();
        }
    trae.visit(new MemberTreeVisitor());
    }
   
catch (FileNotFoundException e) {
System.out.println("Kan ikke læse filen");

}
}
}

data skal bruges i et binært søgetræ
Avatar billede arne_v Ekspert
13. april 2003 - 11:58 #3
Noget i retning af:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ReadTest {
  public static void main(String[] args) {
      try {
        BufferedReader r =
            new BufferedReader(new FileReader("TEST.CSV"));
        String line;
        while ((line = r.readLine()) != null) {
            System.out.println("line=" + line);
        }
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
  }
}
Avatar billede arne_v Ekspert
13. april 2003 - 12:02 #4
Din kode compiler ikke hos mig.

Det gør:

import java.io.*;

public class Test {
    public static void main(String[] args) throws IOException {

        //MemberTreeList trae = new MemberTreeList();

        try {
            FileReader file = new FileReader("eksempel.txt");

            BufferedReader line = new BufferedReader(file);

            String linie = line.readLine();
            while (linie != null) {

                //trae.insert(linie, "");
                linie = line.readLine();
            }
            //trae.visit(new MemberTreeVisitor());
        } catch (FileNotFoundException e) {
            System.out.println("Kan ikke læse filen");

        }
    }
}

[du skal naturligvis ikke udkommentere tree, men jeg har ikke den klasse]
Avatar billede coldasice Nybegynder
13. april 2003 - 12:08 #5
package binaere_traeer;

import java.io.*;

public class Test2 {
    public static void main(String[] args) throws IOException {

        MemberTreeList trae = new MemberTreeList();

        try {
            FileReader file = new FileReader("eksempel.txt");

            BufferedReader line = new BufferedReader(file);

            String linie = line.readLine();
            while (linie != null) {

                trae.insert(linie, "");
                linie = line.readLine();
            }
            trae.visit(new MemberTreeVisitor());
        } catch (FileNotFoundException e) {
            System.out.println("Kan ikke læse filen");

        }
    }
}




Retunerer  "kan ikke læse filen"
Avatar billede arne_v Ekspert
13. april 2003 - 12:12 #6
Prøv lig og erstat:

      } catch (FileNotFoundException e) {
            System.out.println("Kan ikke læse filen");

med:

      } catch (FileNotFoundException e) {
            e.printStackTrace();

og se hvad det giver.
Avatar billede arne_v Ekspert
13. april 2003 - 12:13 #7
Ligger eksempel.txt i det directory, hvor du kører programmet ?

(hvis du kører i en IDE, så er det tit svært at vide hvor man egentligt
kører henne)

Måske skulle du have fuld sti på:

FileReader file = new FileReader("C:\\dir\\subdir\\eksempel.txt");
Avatar billede coldasice Nybegynder
13. april 2003 - 12:14 #8
java.io.FileNotFoundException: eksempel.txt (Den angivne fil blev ikke fundet)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:103)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at java.io.FileReader.<init>(FileReader.java:41)
    at binaere_traeer.Test2.main(Test2.java:11)
Avatar billede coldasice Nybegynder
13. april 2003 - 12:15 #9
Ja det ligger i den samme pakke..
Avatar billede arne_v Ekspert
13. april 2003 - 12:16 #10
Du skal ikke forvente at programmet kører hvor Test.java ligger !

Prøv med fuld sti til filen.
Avatar billede coldasice Nybegynder
13. april 2003 - 12:17 #11
har lige prøvet det virkede.... tak....
Det er bare ikke optimalt at hele stien skal stå der
Avatar billede arne_v Ekspert
13. april 2003 - 12:34 #12
Korrekt.

Men du er i en udviklings-situation nu.

Når programmet skal endeligt bruges er der flere muligheder:

1)  Du samler applikationen på en sådan måde og laver et start
    script der gør at du kan undgå en absolutte sti.

2)  Du sender filnavnet med over som argument til programmet.

3)  Du pakker både kode og fil ned i en jar-fil og læser
    filen derfra (kræver nogle få kode-ændringer for at virke).
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