Stream Einstieg
-
Hi! Kann ich irgendwie erst an einer bestimmten Stelle aus einem InputStream einsteigen? Also mich interessieren die Daten vor dieser Stelle nicht, ich will z.B. erst ab dem 10000 Byte anfangen zu lesen, weil ich alles was davor steht nicht brauche. Also ich will auch nicht die Zeit damit verschwenden die 10000 Bytes davor noch zu lesen und nur nicht zu verwenden, ich will die ersten 10000 Bytes garnicht erst lesen, wie geht das?
Danke!
-
In BufferedInputReader gibt es eine Methode read(byte[] b, int off, int len).
Vielleicht hilft dir das ja.
Wenn nicht, einfach mal in die API Dokumentation von java.io schauen
-
Ahhhh! *ankopffass*
Ich nehme genau die Methode und da ist es mir nicht in den Sinn gekommen einfach mal keine 0 als 2. Parameter zuübergeben. ^^
Danke sehr!
-
Alternativ gäbe es noch die Methode skip(long n), mit der man n Bytes im Stream überspringen kann...
MfG
-
Ich glaube nicht, also ich habe sie schon ausprobiert. Nur setzt diese Methode quasi nur die Marke wo ich gerade im Stream bin weiter nach vorne, als ob ich per read bytes gelesen hätte. Leider tut sie auch genau das. Sie liest die bytes! Also überspringe ich die Bytes nicht so, wie ich sie wie oben beschrieben, überspringen will. Korrigiere mich, wenn es nicht so ist. Aber ich bin mir recht sicher, dass es so ist.
-
Hm, skip() nutzt wahrscheinlich auch nur read(), ja.
Ich bin mir aber gar nicht so sicher, ob das überhaupt so einfach geht wie du dir das vorstellst, denn ein Stream ist ja eigentlich eine sequentielle Ansammlung von Bytes, die man auch nur sequentiell lesen kann. Positionieren kann man IMO eigentlich nur in Dateien mit wahlfreiem Zugriff.MfG
-
Ich stell´s mir ja nicht einfach vor! ^^
Ich will ja nur wissen wie das geht. Ich weis es nicht und deshalb kann ich es mir auf keine Art und Weise vorstellen.
Also ich werde das mit read(byte[], int, int) einfach probieren. Es wird sehr wahrscheinlich klappen, aber vermutlich nicht mit jeder Art von Datenquelle. Ich weis es nich, muss ich gleich mal ausprobieren.
-
Es gibt dieselbe parametrisierte Methode auch in anderen Inputstream Klassen wie FileInputStreamReader etc.