﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-weizi2012</title><link>http://www.blogjava.net/jiangwei/</link><description>weizi2012</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 07:01:47 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 07:01:47 GMT</pubDate><ttl>60</ttl><item><title>java 文件下载</title><link>http://www.blogjava.net/jiangwei/archive/2012/09/27/java.html</link><dc:creator>jiangwei</dc:creator><author>jiangwei</author><pubDate>Thu, 27 Sep 2012 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/jiangwei/archive/2012/09/27/java.html</guid><wfw:comment>http://www.blogjava.net/jiangwei/comments/388668.html</wfw:comment><comments>http://www.blogjava.net/jiangwei/archive/2012/09/27/java.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangwei/comments/commentRss/388668.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangwei/services/trackbacks/388668.html</trackback:ping><description><![CDATA[<p>/**<br />&nbsp; * 本地下载<br />&nbsp; * <br />&nbsp; * @param response<br />&nbsp; * @throws FileNotFoundException<br />&nbsp; */<br />&nbsp;public void downloadLocal(HttpServletResponse response)<br />&nbsp;&nbsp;&nbsp;throws FileNotFoundException {<br />&nbsp;&nbsp;// 下载本地文件<br />&nbsp;&nbsp;String fileName = "Operator.doc".toString(); // 文件的默认保存名<br />&nbsp;&nbsp;// 读到流中<br />&nbsp;&nbsp;InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径<br />&nbsp;&nbsp;// 设置输出的格式<br />&nbsp;&nbsp;response.reset();<br />&nbsp;&nbsp;response.setContentType("bin");<br />&nbsp;&nbsp;response.addHeader("Content-Disposition", "attachment; filename=\""<br />&nbsp;&nbsp;&nbsp;&nbsp;+ fileName + "\"");<br />&nbsp;&nbsp;// 循环取出流中的数据<br />&nbsp;&nbsp;byte[] b = new byte[100];<br />&nbsp;&nbsp;int len;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;while ((len = inStream.read(b)) &gt; 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;response.getOutputStream().write(b, 0, len);<br />&nbsp;&nbsp;&nbsp;inStream.close();<br />&nbsp;&nbsp;} catch (IOException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p>&nbsp;/**<br />&nbsp; * 网络文件下载<br />&nbsp; * <br />&nbsp; * @param response<br />&nbsp; * @throws MalformedURLException<br />&nbsp; */<br />&nbsp;public void downloadNet(HttpServletResponse response)<br />&nbsp;&nbsp;&nbsp;throws MalformedURLException {<br />&nbsp;&nbsp;// 下载网络文件<br />&nbsp;&nbsp;int bytesum = 0;<br />&nbsp;&nbsp;int byteread = 0;<br />&nbsp;&nbsp;URL url = new URL("windine.blogdriver.com/logo.gif");<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;URLConnection conn = url.openConnection();<br />&nbsp;&nbsp;&nbsp;InputStream inStream = conn.getInputStream();<br />&nbsp;&nbsp;&nbsp;FileOutputStream fs = new FileOutputStream("c:/abc.gif");<br />&nbsp;&nbsp;&nbsp;byte[] buffer = new byte[1204];<br />&nbsp;&nbsp;&nbsp;@SuppressWarnings("unused")<br />&nbsp;&nbsp;&nbsp;int length;<br />&nbsp;&nbsp;&nbsp;while ((byteread = inStream.read(buffer)) != -1) {<br />&nbsp;&nbsp;&nbsp;&nbsp;bytesum += byteread;<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(bytesum);<br />&nbsp;&nbsp;&nbsp;&nbsp;fs.write(buffer, 0, byteread);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;} catch (FileNotFoundException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;} catch (IOException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p>&nbsp;/**<br />&nbsp; * 支持在线打开下载<br />&nbsp; * <br />&nbsp; * @param filePath<br />&nbsp; * @param response<br />&nbsp; * @param isOnLine<br />&nbsp; * @throws Exception<br />&nbsp; */<br />&nbsp;public void downLoad(String filePath, HttpServletResponse response,<br />&nbsp;&nbsp;&nbsp;boolean isOnLine,String fname) throws Exception {<br />&nbsp;&nbsp;System.out.println("filePath:" + filePath);<br />&nbsp;&nbsp;File f = new File(filePath);<br />&nbsp;&nbsp;if (!f.exists()) {<br />&nbsp;&nbsp;&nbsp;response.sendError(404, "File not found!");<br />&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));<br />&nbsp;&nbsp;byte[] buf = new byte[1024];<br />&nbsp;&nbsp;int len = 0;<br />&nbsp;&nbsp;response.reset(); // 非常重要<br />&nbsp;&nbsp;if (isOnLine) { // 在线打开方式<br />&nbsp;&nbsp;&nbsp;URL u = new URL("<a href="file:///">file:///</a>" + filePath);<br />&nbsp;&nbsp;&nbsp;response.setContentType(u.openConnection().getContentType());<br />&nbsp;&nbsp;&nbsp;response.setHeader("Content-Disposition", "inline; filename="<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ fname);<br />&nbsp;&nbsp;&nbsp;// 文件名应该编码成UTF-8<br />&nbsp;&nbsp;} else { // 纯下载方式<br />&nbsp;&nbsp;&nbsp;response.setContentType("application/x-msdownload");<br />&nbsp;&nbsp;&nbsp;response.setHeader("Content-Disposition", "attachment; filename="<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ fname);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;OutputStream out = response.getOutputStream();<br />&nbsp;&nbsp;while ((len = br.read(buf)) &gt; 0)<br />&nbsp;&nbsp;&nbsp;out.write(buf, 0, len);<br />&nbsp;&nbsp;br.close();<br />&nbsp;&nbsp;out.close();<br />&nbsp;}</p><img src ="http://www.blogjava.net/jiangwei/aggbug/388668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangwei/" target="_blank">jiangwei</a> 2012-09-27 10:57 <a href="http://www.blogjava.net/jiangwei/archive/2012/09/27/java.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>