0

これを上にドラッグして申し訳ありませんが、私はよく見てきましたが、それでもEOFExceptionが発生し続けます。私は以下を除いて私の方法からすべてをコメントしました:

    File receivedFileObject;
    File newFile = new File("newlyWrittenFile.mp3");


    try{
        Socket socket = new Socket(SERVER_IP, PORT);

        try{
        ObjectInputStream incommingData = new ObjectInputStream(socket.getInputStream());

私がやろうとしているのは、サーバーからクライアントにファイル、txt、またはmp3を渡すことだけです-を呼び出そうとさえしませんreadObject()が、ObjectInputStreamそれでもEOFExceptionが発生しますか?読み取ろうとしていないファイルの最後に到達するにはどうすればよいですか?実際、私はテキストファイルを1行ずつ読み込もうとしていたらいいのにと思います。なぜなら、それを完全にうまく行う方法を知っているからです。オブジェクトを受け取り、それをファイルにキャストしてファイルシステムに書き込みたいだけですが、何らかの理由で私のキャッチブロック:

        } catch (IOException e){
            System.out.println("Incomming data assignment error : " + e);   
        }

プリントアウト:

着信データ割り当てエラー:java.io.EOFException

私はこのフォーラムの投稿にリストされているサーバーコードに沿ってフォローしようとしています。基本的にサーバーから、次の行を使用してファイルをクライアントに書き込みます。

        if (myFile.exists()) {
        ObjectOutputStream oos=new ObjectOutputStream(client.getOutputStream());

        oos.writeObject(myFile);
    }

誰かが私の側の愚かなエラーのように感じるものを修正する方法を説明できれば本当にありがたいです-事前に感謝します!

4

2 に答える 2

1

のjavadocObjectInputStreamを確認すると:

シリアライゼーション ストリーム ヘッダーがストリームから読み取られ、検証されます。

したがって、オブジェクトを作成すると、読み取りがトリガーされます。

于 2012-08-09T02:59:08.773 に答える