Get the App
SLTechnology News&Howtos  ›  Development  › 

What are the ways for Java to download files?

Shulou Source: shulou.com Published: 2022-06-02 06:21:55 11月02日 Update

This article is about how Java downloads files. The editor thinks it is very practical, so share it with you as a reference and follow the editor to have a look.

1. Download as a stream

Public HttpServletResponse download (String path, HttpServletResponse response) {try {/ / path is the path of the file you want to download. File file = new File (path); / / get the file name. String filename = file.getName (); / / gets the suffix name of the file. String ext = filename.substring (filename.lastIndexOf (".") + 1) .toUpperCase (); / / download the file as a stream. InputStream fis = new BufferedInputStream (new FileInputStream (path)); byte [] buffer = new byte [fis.available ()]; fis.read (buffer); fis.close (); / / clear response response.reset (); / / set Header response.addHeader for response ("Content-Disposition", "attachment;filename=" + new String (filename.getBytes () Response.addHeader ("Content-Length", "" + file.length ()); OutputStream toClient = new BufferedOutputStream (response.getOutputStream ()); response.setContentType ("application/octet-stream"); toClient.write (buffer); toClient.flush (); toClient.close ();} catch (IOException ex) {ex.printStackTrace () } return response;}

two。 Download local files

Public void downloadLocal (HttpServletResponse response) throws FileNotFoundException {/ / download the local file String fileName = "Operator.doc" .toString (); / / default save name of the file / / read to the stream InputStream inStream = new FileInputStream ("c:/Operator.doc"); / / the storage path of the file / / sets the format of the output response.reset (); response.setContentType ("bin") Response.addHeader ("Content-Disposition", "attachment; filename=\"+ fileName +"\ "); / / Loop fetch the data in the stream byte [] b = new byte [100]; int len; try {while ((len = inStream.read (b)) > 0) response.getOutputStream (). Write (b, 0, len); inStream.close () } catch (IOException e) {e.printStackTrace ();}}

3. Download network files

Public void downloadNet (HttpServletResponse response) throws MalformedURLException {/ / download network files int bytesum = 0; int byteread = 0; URL url = new URL ("windine.blogdriver.com/logo.gif"); try {URLConnection conn = url.openConnection (); InputStream inStream = conn.getInputStream (); FileOutputStream fs = new FileOutputStream ("c:/abc.gif") Byte [] buffer = new byte [1204]; int length; while ((byteread = inStream.read (buffer))! =-1) {bytesum + = byteread; System.out.println (bytesum); fs.write (buffer, 0, byteread);} catch (FileNotFoundException e) {e.printStackTrace () } catch (IOException e) {e.printStackTrace ();}}

4. Support for opening online

Public void downLoad (String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {File f = new File (filePath); if (! f.exists ()) {response.sendError (404, "File not found!"); return;} BufferedInputStream br = new BufferedInputStream (new FileInputStream (f)); byte [] buf = new byte [1024]; int len = 0; response.reset () / / very important if (isOnLine) {/ / online opening method URL u = new URL ("file:///" + filePath); response.setContentType (u.openConnection (). GetContentType ()); response.setHeader (" Content-Disposition "," inline; filename= "+ f.getName ()) / / the file name should be encoded as UTF-8} else {/ / download-only response.setContentType ("application/x-msdownload"); response.setHeader ("Content-Disposition", "attachment; filename=" + f.getName ());} OutputStream out = response.getOutputStream () While ((len = br.read (buf)) > 0) out.write (buf, 0, len); br.close (); out.close ();} Thank you for reading! This is the end of this article on "what are the ways to download Java files?". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, you can share it for more people to see!

Tags: File method content file name more article network path online good practical important suffix form data article format see knowledge coding Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Redmi Shulou Tech Info Docker NVidia OPPO Reno