java 文件下载示例
时间: 2024-07-13 14:01:02 浏览: 101
Java 批量文件压缩导出并下载到本地示例代码
在Java中实现文件下载通常涉及到服务器端的Servlet技术,这里有两个相关的方面:
1. **基础概念 - 文件读取**[^1]:
```java
// 基于InputStream的文件读取示例
FileInputStream fis = new FileInputStream("path_to_your_file");
byte[] fileContent = new byte[(int) fis.available()];
fis.read(fileContent);
fis.close();
// 使用OutputStream发送到客户端
OutputStream outputStream = response.getOutputStream();
outputStream.write(fileContent);
```
2. **文件下载 - Servlet示例**[^2]:
在HTML前端页面上,链接指向一个服务器端的Servlet,如`/servlet_demo/download`,它接收文件名参数并响应下载请求:
```html
<!-- HTML链接 -->
<a href="/servlet_demo/download?fileName=1.jpeg">图片</a>
<a href="/servlet_demo/download?fileName=1.avi">视频</a>
```
Server-side (Servlet)通常是这样处理的:
```java
@.WebServlet("/download")
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("fileName");
File file = new File(fileName);
response.setContentType("application/octet-stream"); // 设置content type
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); // 强制下载
InputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
inputStream.read(bytes);
outputStream(response.getOutputStream()).write(bytes);
}
}
```
这里,`doGet`方法会打开指定的文件并将其内容写入到HTTP响应中,浏览器接收到这个响应时会启动下载。
阅读全文