登录 |  注册
首页 >  编程语言 >  Java常用开发工具类案例代码 >  Java实现文件下载功能

Java实现文件下载功能

在开发过程中,有时需要实现文档的下载功能。文档的下载功能涉及到了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();
	}
}


下一篇: Java实现文件写入功能
推荐文章
  • 随着深度学习在图像、语言、广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用。而在广告CTR预估方面,新模型也是层出不穷:WideandDeep、DeepCrossNetwork、DeepFM、xDeepFM,美团很多篇深度学习博客也做了详细的介绍。但是,当
  • 1.背景搜索优化问题,是个典型的AI应用问题,而AI应用问题首先是个系统问题。经历近10年的技术积累和沉淀,美团搜索系统架构从传统检索引擎升级转变为AI搜索引擎。当前,美团搜索整体架构主要由搜索数据平台、在线检索框架及云搜平台、在线AI服务及实验平台三大体系构成。在AI服务及实验平台中,模型训练平台
  • 行业算法版简介OpenSearch-行业算法版是基于阿里巴巴自主研发的大规模分布式搜索引擎搭建的一站式智能搜索业务开发平台,目前为包括淘宝、天猫在内的阿里集团核心业务提供搜索服务支持。通过内置各行业的查询语义理解、机器学习排序算法等能力,提供充分开放的引擎能力,助力开发者快速搭建智能搜索服务。Ope
  • 一.概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。当业务发生数据库切换时
  • 一步一步推导出Mysql索引的底层数据结构。  Mysql作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是Mysql数据的存储形式以及索引的设计,决定了Mysql整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数
  • 如何看到老年代、新生代的对象有哪些呢?MAT是分析dump的神器(顺便吐槽:当然也是吃内存卡机器的怪兽)。通常我们会在出现fullGC时dump下堆内存,然后分析FullGC的原因。那如何获知整个堆内存里,有哪些对象在新生代、哪些在老年代呢?一个典型的应用场景是:出现了耗时超预期的YoungGC,我
学习大纲