java web二进制流的图片如何用response返回给前台

代码片段:InputStreamin=connection.getInputStream();GZIPInputStreamgzin=newGZIPInputStream... 代码片段:
InputStream in = connection.getInputStream();
GZIPInputStream gzin = new GZIPInputStream(in);
FileOutputStream file = new FileOutputStream(new File("F:\\123.gif"));
byte[] bytes = new byte[1024*1024];
int length = 0;
while((length=gzin.read(bytes))!=-1){
file.write(bytes,0,length);
}
file.write(bytes, 0, length);
file.close();
in.close();

以上代码实现了,把网上的一个图片的流拿到,并且写入一个文件中,
现在要实现的是:
把这个图片流用servlet直接返回到前台页面,通过解析在前台JSP页面上把这个图片显示出来
请教如何做!
展开
 我来答
一只豚鹿
推荐于2019-08-09 · TA获得超过1062个赞
知道答主
回答量:17
采纳率:50%
帮助的人:8325
展开全部

FileOutputStream很明显你是用的文件流返回的
// 以byte流的方式打开文件 d:\1.gif      

FileInputStream hFile = new FileInputStream(url);      //得到文件大小   

int i=hFile.available(); 

byte data[]=new byte[i];        //读数据

hFile.read(data);         //得到向客户端输出二进制数据的对象

OutputStream toClient=response.getOutputStream();         //输出数据 

toClient.write(data);  

toClient.flush();  

toClient.close();   

hFile.close();

扩展资料

如果是纯文本使用字符流,如果二进制文件,使用字节流。

如果只是得到信息,原样模纤敏不动,不进行修改操作,例如文件上传和下载,这时就使用字节流。文件上传:在服务器端把竖配浏览器端信旦枝息提取出来。文件下载:把服务器端内容写给浏览器端。

如果要操作的是自定义信息,这时使用字符流。

通过response获取的输出流它的真实类型是什么?

ServletOutputStream  response.getOutputStream();

PrintWriter  response.getWriter();

ServletOutputStream由于使用字节流多数是原样复制,所以使用write方法,而不是print方法。

PrintWriter:打印流,两个特点:1.可以设置自动刷新。2.可以将信息原样输出。

扣动你的心弦
推荐于2017-10-06
知道答主
回答量:14
采纳率:0%
帮助的人:10.6万
展开全部
FileOutputStream
很明显你是用的文件流返回的氏绝侍禅
// 以byte流的方式打开文件 d:\1.gif
FileInputStream hFile = new FileInputStream(url);
//得到文件大小
int i=hFile.available();
byte data[]=new byte[i];
//读数据
hFile.read(data);

//得到向客户歼谈姿端输出二进制数据的对象
OutputStream toClient=response.getOutputStream();
//输出数据
toClient.write(data);

toClient.flush();
toClient.close();
hFile.close();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
manwu91
推荐于2017-10-14 · TA获得超过486个赞
知道小有建树答主
回答量:385
采纳率:71%
帮助的人:287万
展开全部
response.setHeader("Content-Type","image/jped");//设置响应的媒体类型,这样浏览器会识别笑闷尺出响应的是罩镇图片碰高
response.getOutputStream().write(bytes);
response.flush()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式