Lines of Code-Wie ermitteln?

Status
Nicht offen für weitere Antworten.

lintu

Neues Mitglied
hallo,

also, ich stehe vor der aufgabe die Anzahl der Zeilen aus einer eingelesenen textdatei zu ermitteln.so weit so gut,
hab mir da meine gedanken gemacht und bin zu folgendem ergebnis gekommen:

import java.util.*;
import java.io.*;

public class ZeilenZählen {

public static int Zeilen(String pfad)throws IOException{

Scanner sc = new Scanner(new
File(pfad));

int anzahl=0;
while(sc.nextLine()!=null){
anzahl++;
}
return anzahl;
}

ZeilenZählen(){

}

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


System.out.print("Dateinamen eingeben: ");
Scanner eingabe = new Scanner(System.in);
String filePath = eingabe.nextLine();

System.out.println(Zeilen(filePath));

}
}

mein problem ist jetzt nur dass das so nicht funktioniert 🙁 hat vielleicht jemand ne idee wie man das mit grundelegenden mitteln (haben noch nich soooo viel gelernt) bewerkstelligen könnte?

schon mal im voraus vielen dank für eure hilfe und einen guten rutsch ins neue jahr 😉
 
@Schandro: klar darf er das, wieso auch nicht? nur machen sollte man es halt nicht ...

@lintu: verwende statt des Scanners in Zeile 12 einen BufferedReader auf einen FileInputStream. Btw sind Anzahl der Zeilen in einer Datei und LOC was anderes idR 😉

außerdem ist "es funktioniert nicht" eine schlechte fehlbeschreibung. du hättest wenigstens die exception mit dazu schreiben können die geworfen wird
 
ich hab den code rauskopiert und bei mir lief er wegen dem ä nicht...

@ lintu

Versuchs mal hiermit:

Code:
public static int zaehlen(String Pfad)
 {
   FileReader f;
      int c;
 String htext = "";
      try {
        f = new FileReader(Pfad);
        while ((c = f.read()) != -1) {
           htext += ((char)c);
        }
        f.close();
      } catch (Exception e) {
        System.out.println("Fehler beim Lesen der Datei");
      }
      String[] zeilen = htext.split("\n");
    return zeilen.length;}
 
hallo,

danke für die antworten!also das mit dem ä hab ich jetzt erstmal geändert.macht aber leider keinen unterschied.die fehler die kommen sind:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1471)
at ZeilenZaehlen.Zeilen(ZeilenZaehlen.java:13)
at ZeilenZaehlen.main(ZeilenZaehlen.java:30)

hätte vielleicht noch wer ne idee wie ich das mit dem scanner hinbekomme?weil das mit dem reader hatten wir noch nich.also muss das auch irgendwie mit dem scanner möglich sein.....

lg,
lintu
 
Dein Problem ist, dass

Code:
sc.nextLine()

nicht null zurückgibt, wenn es keine Zeile mehr gibt, sondern eine Exeption vom Typ NoSuchElementException. Wenn du diese abfängst, kannst du so "das Ende des Files" bestimmen und dann anzahl zurückgeben.

eine einfache Try - Catch folge hilft dabei.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben