Ich schreibe mehrere serialisierbare Java-Objekte auf Band.Objekt von nicht zurückgespultem Band lesen
Der Code funktioniert ohne Probleme beim Lesen der geschriebenen Objekte mit einem Rückspulgerät (/ dev/st0), aber es ist nie erfolgreich beim Lesen dieser Objekte mit einem nicht zurückspulenden Gerät (/ dev/nst0).
Der Fehler tritt immer im ersten readObject() -Aufruf auf und gibt eine StreamCorruptedException zurück.
BufferedInputStream bis = new BufferedInputStream (
new FileInputStream(device), 2*1024*1024);
ObjectInputStream ois = new ObjectInputStream(bis);
Object oisObject = ois.readObject();
Die Ausnahme: Fehlermeldung und relevanter Stack-Trace ist:
java.io.StreamCorruptedException: invalid stream header: 9AF03B07
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
ist zuversichtlich, dass jemand in der Lage sein könnte, mir zu helfen, zu verstehen, warum dies nur mit dem nicht zurückspulende Gerät auftritt, ist, und vielleicht schlagen auch eine mögliche Abhilfe für das Problem vor. Vielen Dank.
Haben Sie irgendwie verifiziert, dass das Lesen im Allgemeinen von diesem Gerät aus funktioniert, indem Sie einfach eine Tonne Bytes mit einem normalen Ausgabestrom in das Gerät schreiben und es mit einem Eingabestream erneut einlesen? – Harald
Ja, die Validierung der Infrastruktur ist ein Muss. In diesem Fall funktionieren das Bandlaufwerk und die Gerätedateien ordnungsgemäß unter Verwendung von Linux-Befehlen und Java-Eingabe/Ausgabe-Streams. Das Problem scheint derzeit auf readObject() und nur über ein nicht zurückgespultes Gerät isoliert zu sein. – Brett
Fehlermeldung und Stack-Ablaufverfolgung fehlen beide von dieser Frage. – EJP