如何将用Delphi编写的特定代码转换为JAVA
try
LLine := TMemoryStream.Create;
IdTCPClient1.IOHandler.WriteLn('atext');
IdTCPClient1.IOHandler.ReadStream(LLine, -1);
LLine.Position := 0;
LLine.Read(intval, 4); //the server is sending memstream as integer + ajpeg image
Image1.Picture.Graphic.LoadFromStream(LLine);
finally
//free
end;
上面的代码与Delphi完美配合,但现在我也想创建一个java客户端,但是我自己的转换给了我错误(java)
Image image = null ;
Socket socket = new Socket(someIP, myport);
我的转换是
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
String string = "atext\n";
byte buffer[] = string.getBytes();
out.write(buffer);
in.skip(4); // i don't want the integer
image = ImageIO.read(in);
服务器完全获取文本文本,但是我的java客户端遇到问题,图像显示空值(我分配了一个断点并检查了它);
答案 0 :(得分:0)
ImageIO.read(InputStream input)文档说:
如果没有已注册的ImageReader声称能够读取结果 stream,返回null。
因此在这种情况下,null值似乎是正常的。您是否检查过匹配的ImageReader 已注册? (例如,通过加载现有的有效参考图像文件)