# Einlesen von Datei



## Windows10 (30. Jan 2016)

Wie kann man von einer Datei einlesen, und dabei zählen wie viele Werte in der Datei enthalten sind? Dann die Anzahl der Werte einfach in ein Array speichern?


----------



## Tarrew (30. Jan 2016)

Was hast du denn schon probiert? 
Hier mal ein paar Sachen die nützlich sein könnten: 
File
Scanner
Scanner.next()
Scanner.hasNext()


----------



## Windows10 (30. Jan 2016)

Tarrew hat gesagt.:


> Was hast du denn schon probiert?
> Hier mal ein paar Sachen die nützlich sein könnten:
> File
> Scanner
> ...


Ich glaube wir sollten nur mit ReadIn() arbeiten!!!!

Das Ganze sollte global sein (für alle Methoden)!!!!

In.open(filename);
?;
?;
?;
?;
?;
In.close();
?=Frage!!!!


----------



## Tarrew (30. Jan 2016)

ReadIn() ist wohl irgendeine Funktion aus einer Library von eurer Schule. Da kann ich nichts mit anfangen. Ich verstehe sowieso nicht wieso irgendwelche Schulen etc da ihre eigenen Libraries für Ein&Ausgaben benutzen.

Hast du schonmal irgendwas konkretes probiert?
Du musst ja irgendwas machen wie:


```
while wort!=EOF:
   lies nächstes wort
   inkrementiere zähler

gib zähler aus
```


----------



## Windows10 (30. Jan 2016)

Tarrew hat gesagt.:


> ReadIn() ist wohl irgendeine Funktion aus einer Library von eurer Schule. Da kann ich nichts mit anfangen. Ich verstehe sowieso nicht wieso irgendwelche Schulen etc da ihre eigenen Libraries für Ein&Ausgaben benutzen.
> 
> Hast du schonmal irgendwas konkretes probiert?
> Du musst ja irgendwas machen wie:
> ...


Nein, sicher weßt du was ReadIn() heißt!!


----------



## InfectedBytes (31. Jan 2016)

nein, ReadIn() ist keine Funktion aus der Standard Java Installation. 
Das ist irgendeine Methode, welche deine Schule in einer Klasse selbst definiert hat. 

Wir wissen daher nicht, ob ReadIn eine Zeile als String einliest, die ganze Datei, etc.


----------



## kneitzel (31. Jan 2016)

Ein Grund für eine eigene Library könnte sowas wie automatische Tests sein. Wobei dies bei den Miniprogrammen auch unwahrscheinlich ist zumal es bei Anfängern aus meiner Sicht u jeden Befehl gehen sollte und nicht nur um richtig/falsch...

Und hier sehe ich auch die Möglichkeit, dass die Aufgabe falsch verstanden wurde und es nicht um ReadIn geht sondern evtl. um ein readLine was nur fälschlich als readln wie bei println geschrieben wurde. Mit der Erfahrung aus dem Forum würde ich fast darauf tippen.


----------



## AndiE (1. Feb 2016)

Die Bibliothek stammt aus dem Buch "Sprechen Sie Java?", das in Graz erschienen ist.


----------



## JStein52 (1. Feb 2016)

Woher auch immer die stammt, du kannst zeilenweise einlesen (macht ja evtl. dein ReadIn), dann splittest du die gelesene Zeile an den gewünschten Stellen (Leerzeichen ?? evtl. andere) und zählst wieviele Elemente du in dieser Zeile hast.
z.B. so:


```
String currentLine = readIn();
        String[] pieces = currentLine.split("\\s+");
        int        anzahlPieces = pieces.length;

        // jetzt hast du in pieces die einzelnen Bestandteile deiner Zeile
        // und in anzahlPieces deren anzahl und
        // kannst irgendwas mit machen.
```

Wobei ich allerdings die Syntax von ReadIn() nicht kenne und das einfach mal so hingeschrieben habe


----------



## kneitzel (1. Feb 2016)

Wenn pro Zeile ein Wert steht, dann muss man evtl. die Datei mehrfach einlesen:

```
// Erst die Anzahl der Werte ermitteln.
int counter = 0;
in.open(filename);
while (in.readIn()) {
  counter++;
}
in.close();
// Nun die Werte lesen
ValueType values[] = new ValueType[counter];
in.open(filename);
for (int index=0; index < counter; index++) {
  // Read the line with the value and set values[index]
}
in.close();
```

So in der Art.


----------

