我有这个简单的服务器/客户端应用程序。我正在尝试让服务器通过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());
因此,我的问题是,如果不获取损坏的文件,就无法通过流正确获取对象。