Avatar billede grave Nybegynder
14. juni 2001 - 23:09 Der er 20 kommentarer og
1 løsning

core dump

hvorfor laver denne core dump:

int counter = 0;
String line;
for(;; counter++) {
  line = reader.readLine();
  if(line == null) {
      System.out.println(\"EOF\");
      break;
  }
  lines[counter] = line;
  System.out.println(line);
  Thread.sleep(300);
}
Avatar billede abpdk Nybegynder
14. juni 2001 - 23:14 #1
Prøv en gang til, nogle gange dumper min linux hvis selve compileren laver en fejl.
Avatar billede grave Nybegynder
14. juni 2001 - 23:18 #2
har prøvet MANGE gange det sker hver gang !!!
Avatar billede abpdk Nybegynder
14. juni 2001 - 23:19 #3
Koden ser pæn nok ud, men hvad er lines.
Avatar billede grave Nybegynder
14. juni 2001 - 23:20 #4
det er et String array hvori jeg gæmmer hver linie
Avatar billede delbing Nybegynder
14. juni 2001 - 23:22 #5
Kan du ikke vise core dumpet?
Avatar billede abpdk Nybegynder
14. juni 2001 - 23:22 #6
og det er initialiseret?
Avatar billede grave Nybegynder
14. juni 2001 - 23:24 #7
jeg har lavet en lille tester
den laver også en core dump
--------------------------------------------------
package cutter;
import java.io.*;

public class Cut {

        private char delimiter = \':\';
        private int field = 0;
        private String file = null;
        private String[] lines;
        private BufferedReader reader = null;

        public Cut(char delimiter, int field, String file) {
                this.delimiter = delimiter;
                this.field = field;
                this.file = file;
        }

        public void cutter(){
                try {
                        reader = new BufferedReader(new FileReader(file));
                } catch(FileNotFoundException e) {
                        System.out.println(\"File Not Found\");
                }
                try {
                        int counter = 0;
                        String line;
                        for(;; counter++) {
                                line = reader.readLine();
                                if(line == null) {
                                        System.out.println(\"EOF\");
                                        break;
                                }
                                lines[counter] = line;
                                System.out.println(line);
                                Thread.sleep(300);
                        }
                } catch(Exception e) {
                }
        }
}
--------------------------------------------------

package cutter;

public class CutMain {
        public static void main(String[] args) {
                Cut cut = new Cut(\':\',2,\"passwd\");
                cut.cutter();
        }
}
Avatar billede grave Nybegynder
14. juni 2001 - 23:26 #8
hvordan kigger jeg i et core dump ?????
Avatar billede abpdk Nybegynder
14. juni 2001 - 23:27 #9
Kan man skrive BufferedReader = null;? Prøv evt. uden
Avatar billede grave Nybegynder
14. juni 2001 - 23:28 #10
det har virket i andre klasser jeg har lavet så det skulle jeg mene
Avatar billede delbing Nybegynder
14. juni 2001 - 23:28 #11
selvfølgelig kan man skrive BufferedReader = null;
Avatar billede abpdk Nybegynder
14. juni 2001 - 23:33 #12
Bare nysgerrig, har aldrig selv brugt eller set det. Det er unødvendigt.
Avatar billede delbing Nybegynder
14. juni 2001 - 23:35 #13
du får ikke initialiseret lines[]
Avatar billede grave Nybegynder
14. juni 2001 - 23:35 #14
jeg har prøvet først at initialisere den i:
reader = new BufferedReader(new FileReader(file));

som:
BufferedReader reader = new BufferedReader(new FileReader(file));

så siger compileren at den ikke kender variablen reader i linien:
line = reader.readLine();
Avatar billede grave Nybegynder
14. juni 2001 - 23:39 #15
den er go !!!!!!
er der ikke en eller anden ting jeg kan bruge i stedet for array er det Vector ???

jag kender ikke størelsen på filen den læser fra og skal man ikke initialisere et array med en størrelse ??
Avatar billede delbing Nybegynder
14. juni 2001 - 23:41 #16
java.util.ArrayList
Avatar billede grave Nybegynder
14. juni 2001 - 23:44 #17
jeg kan lave en:
lines.add(line); ????
Avatar billede delbing Nybegynder
14. juni 2001 - 23:46 #18
jep, så kommer den ind til sidst. Du kan også bruge lines.add(counter, line)
Avatar billede delbing Nybegynder
14. juni 2001 - 23:52 #19
Det er fordi du så deklarerer reader inde i try blocken - og når du så forlader blocken er reader udenfor scope.

I ovenstående eksempel ser det ikke ud til at være nødvendigt, men der er eksempler hvor det er. Følgende vil fx ikke compile pga. manglende initialisering af reader.

BufferedReader reader;
  try {
    reader = new BufferedReader(new FileReader(file));
  }
  catch(FileNotFoundException e) {
   System.out.println(\"File Not Found\");
  }
reader.readLine();
                         
med BufferedReader reader = null som det første ville det compile.
Avatar billede grave Nybegynder
14. juni 2001 - 23:56 #20
jeg var ikke klar over at der var scope i try, man bliver hurtigt klogere !!
Avatar billede abpdk Nybegynder
15. juni 2001 - 00:03 #21
Så var det altså rigtigt med initialiseringen af lines. Jeg skulle have gjort det til et svar ;-)
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