Java是一門跨平臺的編程語言,因其在Web開發中廣泛應用而備受推崇。其中之一的應用就是實現文件的下載。通過Java流下載文件,不僅可以減少對服務器的壓力,還可以提高用戶體驗。
try { File file = new File(filePath); InputStream inputStream = new FileInputStream(file); String fileName = URLEncoder.encode(file.getName(), "UTF-8"); byte[] bytes = new byte[inputStream.available()]; inputStream.read(bytes); HttpHeaders headers = new HttpHeaders(); headers.setContentDispositionFormData("attachment", fileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); ResponseEntity responseEntity = new ResponseEntity(bytes, headers, HttpStatus.OK); return responseEntity; } catch (IOException e) { log.error("文件下載失敗,文件路徑:{}", filePath, e); throw new BusinessException(ResponseCodeEnum.FILE_DOWNLOAD_ERROR); }
FTP協議是文件傳輸協議的一種,允許用戶在計算機之間共享文件。Java中提供庫可以實現FTP的文件上傳和下載。在使用Java進行FTP文件傳輸時,我們需要借助于一些開源庫,比如apache的commons-net庫。
FTPClient ftpClient = new FTPClient(); ftpClient.connect(server, port);//連接ftp服務器 ftpClient.login(username, password);//登錄ftp服務器 ftpClient.enterLocalPassiveMode();//開啟被動模式 ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//設置文件類型為二進制文件 ftpClient.changeWorkingDirectory(remotePath);//切換到FTP服務器目錄 InputStream inputStream = ftpClient.retrieveFileStream(fileName);
以上是關于Java流下載和FTP的代碼示例,可以在日常Web開發中廣泛運用。