java写一个文件下载接口
时间: 2023-12-20 16:08:03 浏览: 28
你好!以下是一个简单的Java文件下载接口的示例代码:
```java
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FileDownloadServlet extends HttpServlet {
private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取文件路径
String filePath = "/path/to/file"; // 替换成你的文件路径
// 设置响应内容类型
String contentType = URLConnection.guessContentTypeFromName(filePath);
response.setContentType(contentType);
// 设置响应头
String fileName = new File(filePath).getName();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
// 读取文件并写入响应流
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(filePath), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
if (output != null) output.close();
if (input != null) input.close();
}
}
}
```
这是一个简单的Servlet实现,用于处理文件下载请求。你需要将`/path/to/file`替换为你的实际文件路径。当客户端发送GET请求到这个接口时,它将返回指定文件的内容作为下载。你可以将这个代码嵌入到你的Java web应用中,并通过部署和访问相应URL来测试。记得在部署时配置web.xml中的Servlet映射。
希望这能帮到你!如果你还有其他问题,请随时向我提问。