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パスを要求すると、ファイルのダウンロードダイアログが表示され、ユーザーはファイルを保存するか直接開くかを選択できます。

bannerAds