我正在尝试制作一个通过 Java 中的 newtork 接收 JPG 图像的服务器。
isr = socket.getInputStream();
BufferedImage img = ImageIO.read(isr);
我想读完,但保持套接字连接。仅当我关闭连接时 ImageIO 才会停止。当我发送同一张图像两次时它也会停止。
最佳答案
ImageIO.read 应继续从输入流读取,直到拥有整个文件,此时停止读取。然后,调用者有责任在输入流上调用 close。
您不会从客户端向服务器发送任何数据来告诉服务器您已阅读完毕。只需关闭连接即可。
如果服务器发送相同的图像两次,或发送两个不同的图像,则必须建立两个套接字连接,或使用其他方法读取数据。据我所知,ImageIO.read 无法读取两个图像。
关于java - ImageIO什么时候应该停止从InputStream读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167798/