Java 下载文件并响应到浏览器
时间: 2024-05-04 14:18:19 浏览: 15
在 Java 中,可以使用 HttpServletResponse 对象将文件响应到浏览器。以下是一个简单的示例代码:
```java
@WebServlet("/download")
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取文件名
String fileName = "example.txt";
// 获取文件路径
String filePath = getServletContext().getRealPath("") + File.separator + "files" + File.separator + fileName;
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// 读取文件并输出到浏览器
InputStream inputStream = new FileInputStream(filePath);
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
outputStream.close();
inputStream.close();
}
}
```
以上代码中,假设我们要下载的文件名为 example.txt,位于项目根目录下的 files 目录中。首先获取文件名和路径,然后设置响应头,接着将文件内容输出到响应流中即可。需要注意的是,文件类型需要根据实际情况进行设置,这里设置为 application/octet-stream,表示任意类型的二进制数据。