-2

Javaコードは

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("src/Stringdata.txt"));    
        String s=(String)ois.readObject();
        System.out.println(s.toString());

        } catch (IOException e) {

            e.printStackTrace();
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
        }

ここでjava.io.StreamCorruptedExceptionを取得しています:無効なストリームヘッダー:4D6F7374このエラーは私を助けてください

4

3 に答える 3

4

ObjectInputStream は、ObjectOutputStream を使用して以前に書き込まれたプリミティブ データとオブジェクトを逆シリアル化します。 src/Stringdata.txtおそらく、以前に ObjectOutputStream を使用して書き込まれたシリアル化されたオブジェクトのファイルではありません。InputStreamReaderおそらく代わりに使用したいでしょう

于 2013-05-23T08:31:50.300 に答える
0
java.io.StreamCorruptedException: invalid stream header: 4D6F7374 

4D6F7374 は「最多」です。

これはシリアライズされたオブジェクトのファイルではありません。テキストファイルです。でお読みくださいBufferedReader.readLine()

于 2013-05-24T01:10:17.427 に答える
0

あなたの問題は次のとおりです。サーバーはDataOutputStream/DataInputStreamを使用してデータを送受信し、ObjectOutputStream/ObjectInputStreamを使用してクライアント側でそれを読み取ろうとしています

サーバー/クライアントソケットが同じ入力/出力ストリームタイプを使用して読み取り/書き込みを行っていることを確認してください。

カリル。

于 2013-07-25T01:39:21.143 に答える