Seite 1 von 2

Verständnisfragen Vol. II

Verfasst: 2. Jan 2008 18:47
von marek
Hallo,

Bei der 8. HA ist mir vieles immer noch nicht klar geworden (die Aufgabenstellungen beinhalten meiner Meinung nach sehr viel Prosa im Vergleich zu den Informationen, die sie liefern :wink: ):

Was bedeutet eigentlich genau "eine Datei einlesen"?
Heißt das, wir bekommen einen Array und Java macht ein Feld daraus?
Was machen eigentlich die drei aus Java.io importierten Klassen??

Danke und frohes neues Jahr!
Marek

Verfasst: 2. Jan 2008 19:48
von Krümelmonster
Also bei mir wird nur eine Klasse aus java.io importiert (FileReader).

Wie der Name schon sagt, wird dabei die Datei, deren
Dateiname an den Konstruktor übergeben wird, Zeichen
für Zeichen gelesen.

Wie das genau funktioniert kann dir eigentlich egal sein,
BlackBox sei Dank, du musst nur wissen, dass du mit der
getNextNumber() Methode immer die nächste Zahl in der
Datei bekommst.

Es ist nun deine Aufgabe diese sinnvoll in ein Array zu speichern.

Es kann glaube ich angenommen werden, dass die Datei
richtig formatiert ist.

Re: Verständnisfragen Vol. II

Verfasst: 2. Jan 2008 23:21
von taufrisch
marek hat geschrieben:Was bedeutet eigentlich genau "eine Datei einlesen"?
In SimpleFileParser.java findest du ein Gerüst um aus SimpleFileParser sowas wie PublicTest zu machen, nur das die Werte nicht im Javacode festgelegt sind, sondern aus test.txt eingelesen werden.

Kleiner Tip: Bring AntyTheHarvesterApplication.java zum kompilieren, dann wird es schon etwas klarer.
marek hat geschrieben:Was machen eigentlich die drei aus Java.io importierten Klassen??
import java.io.FileReader wird gebraucht für "new FileReader".
import java.io.IOException wird gebraucht für "catch (IOException e)".
import java.io.Reader wird gebraucht für "Reader reader" und den Zugriff darauf.

Verfasst: 3. Jan 2008 09:06
von marek
Krümelmonster hat geschrieben:Es ist nun deine Aufgabe diese sinnvoll in ein Array zu speichern.
Ok, das wird wohl irgendwie machbar sein. Und dieses Array wird dann "intern" gespeichert?

Es soll ja zudem auch ein Feld erstellt werden. Mache ich dies auch in SimpleFileParser?

Verfasst: 3. Jan 2008 12:24
von Stumpf.Alex
Das Feld wird automatisch in der main durch PrepareField generiert, in dem es das von dir eingelesene Array nutzt.

Verfasst: 4. Jan 2008 15:36
von niklas
Nur wie genau funktioniert dieses getNextNumber()? Klar, es ist ne Blackboxabstraktion, nur gerade die Zeile mit dem

Code: Alles auswählen

result = result * 10 + ch - '0'
versteh ich irgendwie nicht.

Verfasst: 4. Jan 2008 16:13
von Stumpf.Alex
In diesem Abschnitt liest er eine Zahl ein, indem er die Datei Zeichen für Zeichen parst bis ein nicht numerisches Zeichen kommt. Dabei muss man beachten, dass eine 3-stellige Zahl z.B. aus drei einzelnen Ziffern besteht. Deshalb liest man die erste Ziffer ein und wenn noch eine weitere kommt, wird das gesamte Ergebnis mit 10 multipliziert. Dies wiederholt man Zeichen für Zeichen bis zum Ende der Zahl.

Aber wie die genau funktioniert kann dir im moment wirklich egal sein, oder?

Verfasst: 4. Jan 2008 18:01
von evel
ich versteh nicht wo ich die informationen als array speichern soll.
parseFile gibt doch void zurück, oder!?

Verfasst: 4. Jan 2008 18:22
von Krümelmonster
Du kannst doch die Informationen innerhalb von parseFile() oder
in Methoden, die von parseFile() aufgerufen werden,
in ein Klassenattribut speichern.

Verfasst: 4. Jan 2008 20:44
von niklas
Stumpf.Alex hat geschrieben:In diesem Abschnitt liest er eine Zahl ein, indem er die Datei Zeichen für Zeichen parst bis ein nicht numerisches Zeichen kommt. Dabei muss man beachten, dass eine 3-stellige Zahl z.B. aus drei einzelnen Ziffern besteht. Deshalb liest man die erste Ziffer ein und wenn noch eine weitere kommt, wird das gesamte Ergebnis mit 10 multipliziert. Dies wiederholt man Zeichen für Zeichen bis zum Ende der Zahl.

Aber wie die genau funktioniert kann dir im moment wirklich egal sein, oder?
Schon, hatte mich aber interessiert :)

Vielen Dank

Re: Verständnisfragen Vol. II

Verfasst: 12. Jan 2008 21:57
von marek
"test.txt (Das System kann die angegebene Datei nicht finden)"

Was ist denn hier das Problem?! Wo soll ich diese test-Datei speichern, damit er sie auch finden kann? :roll:

Re: Verständnisfragen Vol. II

Verfasst: 12. Jan 2008 22:06
von Stumpf.Alex
Entweder in das gleiche Verzeichnis mit den Javadateien oder bei Eclipse direkt in das Verzeichnis des Projektes. Fängst ja früh an... :wink:

Re: Verständnisfragen Vol. II

Verfasst: 12. Jan 2008 23:46
von marek
Ja, toll, das hatte ich ja bereits gemacht. Warum gehts immer noch nicht??

Re: Verständnisfragen Vol. II

Verfasst: 12. Jan 2008 23:53
von Krümelmonster
In den Screenshots im Anhang siehst du meine
Datei- und Projektstruktur.

Im Code heißt es einfach:

Code: Alles auswählen

p = new SimpleFileParser("test.txt");

Re: Verständnisfragen Vol. II

Verfasst: 13. Jan 2008 00:33
von marek
Das hat mir natürlich geholfen, danke.
Wohl merkwürdig, ich hatte die Datei vorhin in den Source-Folder reingesteckt (laut Anweisung: "gleiches Verzeichnis wie die Klassen"), und es hat nicht funktioniert...