markSupported: relevant bei FileInputStreams?

Status
Nicht offen für weitere Antworten.

Rock Lobster

Bekanntes Mitglied
Servus,

habe mir gerade ein paar Gedanken zum Thema markSupported() gemacht. Eigentlich kann der Fall, daß Markierungen NICHT funktionieren, doch nur bei Streams auftreten, bei denen man nicht wieder zurückspringen kann (z.B. wenn man einen kontinuierlichen Netzwerk-Stream hat).

Aber bei einem FileInputStream müßte doch theoretisch ständig Zugriff möglich sein, da sich das File ja im Dateisystem befindet. Somit kann doch bei einem FileInputStream niemals markSupported() -> false rauskommen, oder? Einzig im Netzwerk wäre es möglich, also daß z.B. irgendwann die Netzwerkverbindung fehlt und auf die Datei nicht mehr zugegriffen werden kann. Aber das kann a) im Dateisystem ja genauso passieren (durch löschen etc) und b) kann ja dann die Datei so oder so nicht mehr gelesen werden.

Also kann man dann bei FileInputStreams immer davon ausgehen, daß mark() funktioniert?
 

HoaX

Top Contributor
natürlich kann auch bei einem file ein false rauskommen. z.B. gibt es bei linux pipes. quasi streams auf dateisystem-ebene.

wenn es schon die möglichkeit gibt das abzufragen, dann würde ich das auch machen und ggf ne exception schmeißen, o.ä.
 

Rock Lobster

Bekanntes Mitglied
Hmm naja es gibt aber auch Situationen, wo man bestimmte Funktionalitäten evtl. nur dann gescheit implementieren kann, wenn Markierungen zur Verfügung stehen. Beispielsweise hatte ich neulich etwas, wo ich mehrmals an den Datei-Anfang zurückspringen mußte. Jedesmal die Datei neu zu öffnen hätte aber z.B. in einem Netzwerk viel zu lange gedauert.

Es ging jedenfalls um eine ganz normale WAV-Datei, also ohne Verwendung von Pipes oder sowas (wäre da auch gar nicht sinnvoll).
 

HoaX

Top Contributor
wenn du es benutzen willst tu es, aber was wenn doch - warum auch immer - der fall eintritt, dass der stream das nicht kann?

HoaX hat gesagt.:
wenn es schon die möglichkeit gibt das abzufragen, dann würde ich das auch machen und ggf ne exception schmeißen, o.ä.

lieber selbst ne exception werfen und korrekt behandeln als zu hoffen dass der fehlerfall nie eintritt!
 

Rock Lobster

Bekanntes Mitglied
Ja das ist schon klar ;)

Mir ging es jetzt hier auch nicht direkt um Implementierungs-Fragen, natürlich würde ich dann schon irgendwie mit Exceptions drumrumbasteln, sodaß es im Ernstfall trotzdem irgendwie mit Biegen und Brechen funktioniert ;)

Hauptsächlich ging es mir hier nur um die eigentliche Theorie, sprich, was passiert eigentlich im Hintergrund, bzw. warum / wann / wodurch kann sowas überhaupt auftreten, da ich mir das bei ganz normalen Dateien irgendwie nicht vorstellen kann.

[...]aber was wenn doch - warum auch immer - der fall eintritt[...]
Also genau das ist es eigentlich, was ich wissen will ;) auch wenn's vielleicht wenig praktischen Nutzen hat. Manchmal ist man einfach neugierig und will wissen, was unter der Haube so abläuft :)
 

Leroy42

Top Contributor
Rock Lobster hat gesagt.:
wo ich mehrmals an den Datei-Anfang zurückspringen mußte. Jedesmal die Datei neu zu öffnen hätte aber z.B. in einem Netzwerk viel zu lange gedauert.

Guter Einwand!

Ich vermute mal, das markSupported das nicht per se
ausschließt, also das, eventuell, die Datei wieder
von vorne gelesen wird. ???:L :### ???:L
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben