gpt4 book ai didi

java - 发送图像ObjectOutputStream

转载 作者:行者123 更新时间:2023-12-01 15:38:59 25 4
gpt4 key购买 nike

我遇到了一些我无法想出下降解决方案的事情。我从服务器向客户端发送一些 string[] 消息,但现在我也想发送图像。问题是我检查客户端上的对象,而不是字节[],这给我在图像到达时处理图像带来了问题。

现在我将其用于传入的字符串[]:

public void run() 
{
while(active)
{

try
{
Object o;
o = input.readObject();

System.out.println("Received from server!");

if ( o instanceof String[])
{
String[] names = (String[]) o;

Refresh.getInstance().update( names );
}
}
catch (OptionalDataException e) { e.printStackTrace(); Terminate(); }
catch (ClassNotFoundException e) { e.printStackTrace(); Terminate(); }
catch (IOException e) { e.printStackTrace(); Terminate(); }
}

}

但现在我希望这个流能够处理 String[] 和 bytes[],任何建议都很好,我迷路了:(

我想要这样的东西:

if ( o instanceof byte[])
{
// ...
}

但这并不重要,因为 o = input.readObject() 在图像文件到来时给了我这个:

12-05 23:00:20.255: W/System.err(16157): java.io.StreamCorruptedException: 格式错误:ac

写入字节的代码:

FileInputStream fis = new FileInputStream("images\\test.jpg");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
ObjectOutputStream oos = new ObjectOutputStream(serverSocket.getOutputStream()) ;
oos.writeObject(buffer);

最佳答案

您应该使用缓冲输入输出流而不是对象。因为对象流旨在处理 java 对象的序列化和反序列化。

关于java - 发送图像ObjectOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com