Wie kann ich suchen (ändern Sie die Position) von ByteArrayInputStream
(java.io
)? Es ist etwas so offensichtlich, aber ich kann nirgendwo eine Methode dafür finden (mark
/reset
ist nicht genug, ich muss die Position irgendwo auf der InputStream
setzen).Suche nach einem ByteArrayInputStream mit java.io
Wenn es nicht java.io
verwendet getan werden kann, und ich muß java.nio
wechseln und ein ByteBuffer
verwenden, wie kann ich etwas ähnlich ein DataOutputStream
ein ByteArrayOutputStream
mit java.nio
Verpackung? Ich finde keinen automatisch skalierbaren Puffer.
EDIT: Ich habe einen Weg gefunden zu erreichen, was ich versuche zu tun, aber es ist ein bisschen chaotisch. ImageIO.createImageInputStream
erstellt eine ImageInputStream
, die genau das ist, was ich will (kann Primitive suchen und lesen). Bei Verwendung von ByteArrayInputStream
wird jedoch FileCacheImageInputStream
zurückgegeben, was bedeutet, dass das Bytearray in eine Datei kopiert wird, die nur gesucht werden soll.
Dies ist das erste Mal, dass ich versuche, die Java-IO-Klassen zu verwenden, und es war völlig negativ. Es fehlen einige grundlegende (IMO) Funktionen, und es gibt viele Möglichkeiten, dasselbe zu tun (z. B. um Primitive aus einer Datei zu lesen, können Sie entweder RandomAccessFile
, DataInputStream
+ , FileChannel
+ ByteBuffer
und vielleicht sogar mehr).
sehen Sie irgendein Problem mit der Verwendung von 'suchen'? –
@Vilay Mathew: Was 'Suchmethode'? Ich sehe keine auf ByteArrayInputStream. – asdfghjkl
Datei-E/A in Java ist eine riesige Sauerei. Ich bringe es Schülern im ersten Jahr bei und versuche, es einfach zu machen, aber es ist immer ein Punkt der Verwirrung. – Fixee