登录 |  注册
首页 >  编程语言 >  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实现文件写入功能
推荐文章
  •    目前支持I/O多路复用的系统调用有  select,pselect,poll,epoll,I/O多路复用就是 通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 但select,pselect,poll,epoll本质上都是
  • 架构师在进行系统设计时,遵循一套复杂且综合的方法论,主要包括以下核心步骤:需求分析:理解并明确业务需求是架构设计的第一步。架构师需要与各利益相关者深入沟通,收集和分析业务需求、性能需求、安全性需求、扩展性需求等。领域建模:基于需求分析,构建抽象的业务模型或数据模型,明确系统的边界、核心实体及其关系。
  • 根据阿里交易型业务的特点,以及在双十一这样业内罕有的需求推动下,我们在官方的MySQL基础上增加了非常多实用的功能、性能补丁。而在使用MySQL的过程中,数据一致性是绕不开的话题之一。本文主要从阿里巴巴“去IOE”的后时代讲起,向大家简单介绍下我们过去几年在MySQL数据一致性上的努力和实践,以及目
  • 随着深度学习在图像、语言、广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用。而在广告CTR预估方面,新模型也是层出不穷:WideandDeep、DeepCrossNetwork、DeepFM、xDeepFM,美团很多篇深度学习博客也做了详细的介绍。但是,当
  • 1.背景搜索优化问题,是个典型的AI应用问题,而AI应用问题首先是个系统问题。经历近10年的技术积累和沉淀,美团搜索系统架构从传统检索引擎升级转变为AI搜索引擎。当前,美团搜索整体架构主要由搜索数据平台、在线检索框架及云搜平台、在线AI服务及实验平台三大体系构成。在AI服务及实验平台中,模型训练平台
  • 行业算法版简介OpenSearch-行业算法版是基于阿里巴巴自主研发的大规模分布式搜索引擎搭建的一站式智能搜索业务开发平台,目前为包括淘宝、天猫在内的阿里集团核心业务提供搜索服务支持。通过内置各行业的查询语义理解、机器学习排序算法等能力,提供充分开放的引擎能力,助力开发者快速搭建智能搜索服务。Ope
学习大纲