Java实现文件下载功能
363
2022-04-03 10:53:03
在开发过程中,有时需要实现文档的下载功能。文档的下载功能涉及到了java IO流操作的基础知识,下面本文介绍如何使用java来实现后台文档下载功能。
package com.yukx.bak; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class ImageUtils { /** * @param urlString * @return 文件在网站的路径 * @throws IOException * @throws Exception */ public static String download(String urlString) throws IOException{ FileOutputStream os = null; InputStream is = null; StringBuilder netfileName = new StringBuilder(); try { // 构造URL URL url = new URL(urlString); // 打开连接 URLConnection con = url.openConnection(); // 输入流 is = con.getInputStream(); // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; //文件后缀 String fileSufix = urlString.substring(urlString.lastIndexOf(".")); String fileName = "yukx测试文件名"; // 输出的文件流 StringBuilder localFile = new StringBuilder(); localFile.append("F:\\images\\"); //校验并创建文件夹 File direct = new File(localFile.toString()); if (!direct.exists()) { direct.mkdirs(); } // 输出的文件流 localFile.append(fileName).append(fileSufix); File file = new File(localFile.toString()); os = new FileOutputStream(file, true); // 开始读取 while ((len = is.read(bs)) != -1) { os.write(bs, 0, len); } //返回文件名 netfileName.append(fileName).append(fileSufix); } catch (Exception e) { e.printStackTrace(); throw e; } finally { //注意关闭文件流,防止内存溢出 if (os != null) { os.close(); } if (is != null) { is.close(); } } return netfileName.toString(); } }
原文链接: https://www.yukx.com/javadev/article/details/2096.html 优科学习网Java实现文件下载功能
推荐文章
-
如何看到老年代、新生代的对象有哪些呢?MAT是分析dump的神器(顺便吐槽:当然也是吃内存卡机器的怪兽)。通常我们会在出现fullGC时dump下堆内存,然后分析FullGC的原因。那如何获知整个堆内存里,有哪些对象在新生代、哪些在老年代呢?一个典型的应用场景是:出现了耗时超预期的YoungGC,我
-
面向服务的架构(SOA)是一种软件开发方法,它使用称为服务的软件组件来创建业务应用程序。每项服务提供一种业务能力,并且服务也可以跨平台和语言相互通信。开发人员使用SOA来重用不同系统中的服务,或者组合几个独立的服务来执行复杂的任务。例如,一个组织中的多个业务流程需要用户身份验证功能。您可以创建一项身
-
1.背景1.1什么是交互式推荐?交互式推荐是一种互动式实时推荐产品模块,主要通过理解用户需求、以互动的方式进行推荐。交互式推荐由Youtube在2018年提出,主要用于解决推荐系统的延迟和与用户互动偏弱的问题。从2021年下半年开始,美团外卖推荐技术团队在外卖首页Feed上持续进行探索,2022上半
-
导读:老是出现堆内存不足,大量FullGC深知出现内存溢出应该怎么办,怎样通过排查找到源头分析来解决问题?正文:我们有个新服务上线运行一段时间后,老是出现堆内存不足,大量出现FullGC,有些实例甚至出现内存溢出错误:java.lang.OutOfMemoryError:Javaheapspace但
-
其实强引用、软引用、弱引用、虚引用这四个概念非常简单好记。在开头先总结一下这四个引用的特点吧。强引用:gc时不会回收软引用:只有在内存不够用时,gc才会回收弱引用:只要gc就会回收虚引用:是否回收都找不到引用的对象,仅用于管理直接内存接下来详细看看这四种引用,结合代码,深刻的体会一下。强引用即我们平
-
在Linux中,CPU主要用于中断、内核以及用户进程的任务处理,优先级为中断内核用户进程,在学习如何分析CPU消耗状况前。先要掌握三个重要的概念1、上下文切换每个CPU在同一时间只能执行一个线程,Linux采用的是抢占式调度,即为每个线程分配一定的执行时间,当到达执行时间、线程中有IO阻塞或高级优先