Java Scanner

Diskutiere Java Scanner im Allgemeine Java-Themen Bereich.
1

19Beat99

Hallo zusammen

Ich habe hier ein Programm geschrieben mit dem ich herausfinden will, wie viele Zeilen ein Dokument hat.
Ich verstehe nicht, warum es mit diesem Programm nicht funktioniert.
Code:
 package Test;

import java.awt.Point;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
    
    
        File germList = new File("C:\\Users\\beatb\\eclipse-workspace\\Test\\src\\Test\\deutsch.txt");
        Scanner germWords;
    try {
        germWords = new Scanner(germList);
        int lengthArray = 0;
    while(germWords.hasNextLine()) {
        lengthArray++;
        System.out.println(lengthArray);
    }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
        }
    }
Ich habe auch schon eine Lösung gefunden. Wenn ich die while-Schleife so schreibe funktioniert es.

Code:
while(germWords.hasNextLine()) {
        lengthArray++;
        System.out.println(lengthArray);
        System.out.println(germWords.nextLine());
    }
Ich versteh jedoch nicht warum die erste Variante nicht funktioniert.

Ich bedanke mich schon einmal im Voraus für eure Hilfe.
 
T

temi

Die Methode hasNextLine() in der Abbruchbedingung der Schleife schaut nur, ob es eine weitere Zeile gibt. Die gibt es und da du daran nichts änderst (z.B. mit nextLine() die Zeile lesen), wird das auch so bleiben.

Du "schaust" quasi immer auf die selbe "nächste" Zeile.
 
MoxxiManagarm

MoxxiManagarm

Wenn der Scanner nicht auf System.in geht solltest du ihn übrigens auch schließen. Verwende dafür das AutoClosable Interface des Scanners. Das sieht dann so aus:
Java:
public class Main {

    public static void main(String[] args) {    
        File germList = new File("C:\\Users\\beatb\\eclipse-workspace\\Test\\src\\Test\\deutsch.txt");
    try (Scanner germWords = new Scanner(germList)) { // HIER
        int lengthArray = 0;
    while(germWords.hasNextLine()) {
        lengthArray++;
        System.out.println(lengthArray);
    }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
        }
    }
 
Thema: 

Java Scanner

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben