InputStream erst ab gegebener Position

Status
Nicht offen für weitere Antworten.

Nova

Bekanntes Mitglied
Hallo,

Ich arbeite mit Javamail und speichere MimeMessages mit hilfe der MimeMessage-Methode writeTo(FileOutputStream fos) in Dateien. Aus einer Datei kann man mit dem Konstruktor MimeMessage(Session session, java.io.InputStream) wieder eine MimeMessage Objekt erhalten.
Soweit sogut, funktioniert auch alles.
Aber: Jetzt möchte ich da noch zusätzliche Informationen VOR der Nachricht in die Datei schreiben.
An diese Informationen komme ich auch problemlos mit einem BufferedReader ran.
Das Problem: Wenn ich nun dem Konstruktor den kompletten FileInputStream übergebe enthält dieser natürlich auch die zusätzlichen Informationen...

meine Frage:
Wie kann ich bei einem InputStream diese zusätzlichen Informationen überspringen?
Am einfachsten wäre es wenn ich immer zeilenweise lesen könnte, bis dann eine Zeile ein Trennzeichen enthält sodass ich weiß das jetzt die eigentliche Nachricht folgt.
Aus einem InputStream kann ich aber nur Bytes rausziehen, das ist ziemlich mühsam wenn ich mich so Zeichen für zeichen "vorantaste" und auch sicher ziemlich langsam, da ich aber teilweise mehrere tausend solcher Nachrichten in möglichst kurzer Zeit erstellen muss sollte das möglichst schnell gehen...
Hat jemand eine Idee wie ich das effizient lösen könnte?


mfg
Nova
 
B

Beni

Gast
Der InputStream besitzt eine Methode "skip", damit können einige Bytes übersprungen werden. Wenn du in deinen Nachrichten noch schreibst, wieviele Bytes für so eine zusätzliche Information verbraucht wird, kannst du deinen Stream skippen lassen.

Aber Achtung: skip überspringt nicht immer die genau Anzahl Bytes die man ihm gibt, manchmal sind es weniger. Beachte den Rückgabewert.
 

Nova

Bekanntes Mitglied
Danke!

Auf die einfachen Sachen kommt man oft nicht :oops:

Scheint so zu funktionieren, aber was soll ich machen wenn skip nicht soviel Bytes überspringt wie gewollt?
Laut Javadoc gibts da ja diverse Gründe warum das passieren kann (ohne explizite Auflistung), daher kann ich mir ja nicht sicher sein dass das skippen funktioniert... (Momentan hab ichs dann so programmiert das ich die entsprechende Mail einfach nicht parse)

Kann man da noch was tun falls das skippen nicht wie gewollt funktioniert?
Bzw. weiß jemand die Gründe warum das schiefgehen kann?


mfg
Christian
 
B

Beni

Gast
Die Methode gibt zurück, wieviele Bytes geskippt wurde. Mach halt eine Schleife um die Methode und ruf sie mehr als einmal auf.
 

Nova

Bekanntes Mitglied
Hm okay, müsste dann auch noch einen Counter einbauen und ggf. abbrechen wenn es zu oft nicht funktioniert hat (damit es keine Endlosschleife wird).
Sehr seltsam diese skip-Methode...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
L Input/Output InputStream öffnen? Allgemeine Java-Themen 12
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
M InputStream auslesen Allgemeine Java-Themen 1
M String aus InputStream Allgemeine Java-Themen 3
C Threading mit BufferedReader/InputStream & sockets Allgemeine Java-Themen 0
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
E POI-InputStream selber wählen Allgemeine Java-Themen 2
S RandomAcessFile das einen InputStream wrappt..? Allgemeine Java-Themen 2
M Umwandlung ByteArrayOutputStream in InputStream Allgemeine Java-Themen 5
1 InputStream hängt Allgemeine Java-Themen 4
H Input/Output InputStream: 32-Bit-Ganzzahl (DWORD) binär lesen Allgemeine Java-Themen 5
D Datentypen Reader/InputStream wiederverwenden? Allgemeine Java-Themen 11
K Inputstream -> Bilder Allgemeine Java-Themen 23
1 InputStream liest die letzte Zeile nicht ein Allgemeine Java-Themen 2
J Java Datei aus FTP in ein INputstream Allgemeine Java-Themen 2
J InputStream Zip-File Allgemeine Java-Themen 3
F ImageIO cant create InputStream Allgemeine Java-Themen 9
S InputStream "weiterleiten" Allgemeine Java-Themen 12
T Integer aus InputStream lesen Allgemeine Java-Themen 3
T Undwandlung eines String in einen InputStream? Allgemeine Java-Themen 3
M Selbst geschriebener InputStreamReader über einen beliebigen InputStream Allgemeine Java-Themen 4
T OutputStream to InputStream Allgemeine Java-Themen 8
S von OutputStream in InputStream schreiben ohne das es blockiert..? Allgemeine Java-Themen 2
reibi BufferedImage nach InputStream Allgemeine Java-Themen 10
R InputStream zweimal lesen Allgemeine Java-Themen 2
G InputStream und File Allgemeine Java-Themen 11
B InputStream zu URL umwandeln Allgemeine Java-Themen 2
F Teile vom InputStream schreiben Allgemeine Java-Themen 9
J InputStream aus URL funktioniert nicht Allgemeine Java-Themen 7
H InputStream Problem mit externem Kommandozeilenprogramm Allgemeine Java-Themen 2
W InputStream öfters nutzen Allgemeine Java-Themen 9
R The mark method of InputStream does nothing. Allgemeine Java-Themen 4
V String oder doch InputStream? Allgemeine Java-Themen 9
A Inputstream in Outputstream umleiten Allgemeine Java-Themen 7
Nils_Langner InputStream soll sich bei neuen Daten melden Allgemeine Java-Themen 2
R InputStream - seltsamer Output Allgemeine Java-Themen 2
S java.io.InputStream.read(byte[] b) überschreiben Allgemeine Java-Themen 33
R InputStream Allgemeine Java-Themen 5
G InputStream kopieren? Allgemeine Java-Themen 6
D Inputstream aus StringBuffer Allgemeine Java-Themen 3
G inputstream() to imageicon() Allgemeine Java-Themen 7
D Durch OutpustStream und InputStream dateien in eine jar sch Allgemeine Java-Themen 3
G aus String einen InputStream erstellen Allgemeine Java-Themen 2
C Wie kann man im InputStream nach einer Zeichenkette suchen? Allgemeine Java-Themen 4
R Aus InputStream wieder eine Datei erzeugen? Allgemeine Java-Themen 2
N String als Inputstream Allgemeine Java-Themen 4
N Suchen in InputStream/ByteArrayOutputStream Allgemeine Java-Themen 11
M InputStream.read abbrechen Allgemeine Java-Themen 2
M Input/Output FileChannel writes / werden diese gecached vom OS und dann erst geschrieben? Allgemeine Java-Themen 6
S Fehlermeldungen erscheinen erst in der Ausführung des Programms Allgemeine Java-Themen 11
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
D mouseWheelMoved => erst reagieren, wenn für 1s das Mausrad nicht mehr benutzt wurde Allgemeine Java-Themen 4
S Start des zweiten Threads erst nach Beenden des ersten Threads Allgemeine Java-Themen 13
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
D Nutzen, erst deklarieren, oder neu erstellen? Allgemeine Java-Themen 11
G Button-Registrierung beim ActionListener erst NACH Tastendruck Allgemeine Java-Themen 2
H Scanner: Ausgabe erst nach Abbruch Allgemeine Java-Themen 8
H StackOverflowError erst ab 87 Array Elementen Allgemeine Java-Themen 4
F externes Programm beginnt erst nach dem ende des mainprogrammes Allgemeine Java-Themen 3
-MacNuke- Calendar erst nach getTime() gesetzt? Allgemeine Java-Themen 4
T Threadsicheres wait() [lock erst mit wait() abgeben] Allgemeine Java-Themen 31
S Zweiten Thread erst starten wenn erster Thread beendet ist ? Allgemeine Java-Themen 6
B Datei erst öffnen, wenn EOF gesetzt ? Allgemeine Java-Themen 4
M Programmablauf nach letzter eingabe erst fortsetzten Allgemeine Java-Themen 2
G Aktualisierung erst nach minimiertem Browser Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
C externes Programm läuft erst nach schließen des mainprogramm Allgemeine Java-Themen 7
S [1/2done] Woher bekommt man libarys die es erst ab 1.6 gibt. Allgemeine Java-Themen 10
J Bibliotheken erst zur Laufzeit laden Allgemeine Java-Themen 5
S erst containsKey oder gleich get Allgemeine Java-Themen 9
bernd java.util.Scanner erst ab Java 1.5? Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
T Security-Exception trotz gegebener Rechte? Allgemeine Java-Themen 3
M Sound anhand von gegebener Frequenz abspielen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben