Delphi到Java代码转换

时间:2012-02-11 04:59:57

标签: java delphi sockets jpeg indy

如何将用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客户端遇到问题,图像显示空值(我分配了一个断点并检查了它);

1 个答案:

答案 0 :(得分:0)

ImageIO.read(InputStream input)文档说:

  

如果没有已注册的ImageReader声称能够读取结果   stream,返回null。

因此在这种情况下,null值似乎是正常的。您是否检查过匹配的ImageReader 已注册? (例如,通过加载现有的有效参考图像文件)