私はこの単純なサーバー/クライアントアプリケーションを持っています。サーバーにOutputStream(FileOutputStream、OutputStream、ObjectOutputStreamなど)を介してファイルを送信させ、実際のファイルに保存する前にクライアント側で受信させようとしています。問題は、これを試してみましたが、失敗し続けることです。ファイルを作成してサーバーから受け取ったオブジェクトをファイルに書き込むと、壊れた画像が表示されます(jpgとして保存するだけですが、それは問題ではありません)。誤動作している可能性が最も高いコードの部分は次のとおりです(ここに表示されている、一見宣言されていないオブジェクトはすべて、事前に宣言されています)。
サーバ:
ObjectOutputStream outToClient = new ObjectOutputStream(
connSocket.getOutputStream());
File imgFile = new File(dir + children[0]);
outToClient.writeObject(imgFile);
outToClient.flush();
クライアント:
ObjectInputStream inFromServer = new ObjectInputStream(
clientSocket.getInputStream());
ObjectOutputStream saveImage = new ObjectOutputStream(
new FileOutputStream("D:/ServerMapCopy/gday.jpg"));
saveImage.writeObject(inFromServer.readObject());
したがって、私の問題は、壊れたファイルを取得せずに、ストリームを介してオブジェクトを正しく取得できないことです。