【发布时间】:2014-11-12 05:52:51
【问题描述】:
我正在使用HttpServer 和HttpHandler 开发一个HTTP 服务器。
服务器应使用 XML 数据或图像响应客户端。
到目前为止,我已经开发了HttpHandler 实现,它使用 XML 数据响应客户端,但我无法实现 HttpHandler 从文件中读取图像并将其发送到客户端(例如,浏览器) .
图像不应完全加载到内存中,因此我需要某种流式解决方案。
public class ImagesHandler implements HttpHandler {
@Override
public void handle(HttpExchange arg0) throws IOException {
File file=new File("/root/images/test.gif");
BufferedImage bufferedImage=ImageIO.read(file);
WritableRaster writableRaster=bufferedImage.getRaster();
DataBufferByte data=(DataBufferByte) writableRaster.getDataBuffer();
arg0.sendResponseHeaders(200, data.getData().length);
OutputStream outputStream=arg0.getResponseBody();
outputStream.write(data.getData());
outputStream.close();
}
}
这段代码只是向浏览器发送了 512 字节的数据。
【问题讨论】: