J
Jörn
Gast
Hi Leute!
Habe mal eine Frage zu dem DataInputStream und den beiden Methoden mark() und reset(), da ich das noch nicht genau verstanden habe.
Ich habe einen DataInputStream, aus dem ich eine gewisse Länge von Daten verarbeiten möchte (das läuft!). Dazu würde ich gern die beiden Methoden mark() und reset() nun benutzen, da ich diesen Vorgang mit dem Einlesen der gleichen Daten mehrmals wiederholen will.
Nun habe ich mir gedacht: Bevor ich das erste Zeichen lese, markiere ich die Position mit dis.mark(124692624), wobei dis der Name des DataInputStream ist. Soweit ich das verstanden habe, muss ich der Methode die Länge der einzulesenden Daten (bei mir bytes) mitgeben, die ab der markierten Position wieder eingelesen werden können. Dann mache ich irgendetwas mit den Daten, wobei ich die gleichen Daten dann ein weiteres Mal einlesen und verarbeiten möchte. Dazu verwende ich dann die Methode reset(), die den Datenzeiger wieder auf die markierte Position zurücksetzt.
Frage 1: Ist es also richtig, dass nach dem Aufruf von reset() der Datensatzzeiger wieder auf die markierte Position im DataInputStream liegt?
Frage 2: Wozu muss ich der Methode mark() überhaupt mitteilen, wie viele bytes (bei mir) anschließend maximal gelesen werden können, da ich ja eigentlich nur die Position brauche? Von da an kann ich doch ganz normal wieder auf den DataInputStream zugreifen!
Gruß Jörn
Habe mal eine Frage zu dem DataInputStream und den beiden Methoden mark() und reset(), da ich das noch nicht genau verstanden habe.
Ich habe einen DataInputStream, aus dem ich eine gewisse Länge von Daten verarbeiten möchte (das läuft!). Dazu würde ich gern die beiden Methoden mark() und reset() nun benutzen, da ich diesen Vorgang mit dem Einlesen der gleichen Daten mehrmals wiederholen will.
Nun habe ich mir gedacht: Bevor ich das erste Zeichen lese, markiere ich die Position mit dis.mark(124692624), wobei dis der Name des DataInputStream ist. Soweit ich das verstanden habe, muss ich der Methode die Länge der einzulesenden Daten (bei mir bytes) mitgeben, die ab der markierten Position wieder eingelesen werden können. Dann mache ich irgendetwas mit den Daten, wobei ich die gleichen Daten dann ein weiteres Mal einlesen und verarbeiten möchte. Dazu verwende ich dann die Methode reset(), die den Datenzeiger wieder auf die markierte Position zurücksetzt.
Frage 1: Ist es also richtig, dass nach dem Aufruf von reset() der Datensatzzeiger wieder auf die markierte Position im DataInputStream liegt?
Frage 2: Wozu muss ich der Methode mark() überhaupt mitteilen, wie viele bytes (bei mir) anschließend maximal gelesen werden können, da ich ja eigentlich nur die Position brauche? Von da an kann ich doch ganz normal wieder auf den DataInputStream zugreifen!
Gruß Jörn