Java ファイルストリームをフロントエンドへ返す方法
Javaの中で、サーブレットを使ってファイルストリームをフロントエンドに返すことができます。以下は簡単な例コードです。
@WebServlet("/download")
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filePath = "/path/to/your/file.txt";
File file = new File(filePath);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
FileInputStream fileInputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
fileInputStream.close();
outputStream.close();
}
}
コード内では、まずダウンロードするファイルのパスを指定し、その後、適切なContent-TypeおよびContent-Dispositionヘッダー情報を設定してファイルストリームをレスポンスの出力ストリームに書き込み、最後に入出力ストリームを閉じます。ブラウザが/downloadパスを要求すると、ファイルのダウンロードダイアログが表示され、ユーザーはファイルを保存するか直接開くかを選択できます。