我正在使用HttpServer和开发HTTP服务器HttpHandler.服务器应该使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码只向浏览器发送512字节的数据.