FileExportUtils
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
public class FileExportUtils {
private static HttpServletRequest excelRequest = null;
private static HttpServletResponse excelResponse = null;
private static FileOutputStream fileOut;
public FileExportUtils(PageContext context) {
this.excelRequest = (HttpServletRequest) context.getRequest();
this.excelResponse = (HttpServletResponse) context.getResponse();
}
public FileExportUtils(HttpServletRequest request,
HttpServletResponse response) {
excelRequest = request;
excelResponse = response;
}
public void outputTxt(String excelName, String resultStr) {
//String realPath = "c:\\"+excelName+".xls";
String realPath = getExcelRealPath(excelName);
writerFileStream(realPath,resultStr);
downloadFile(excelName);
}
private static String getExcelRealPath(String excelName) {
String realPath = excelRequest.getRealPath("/UploadFile");
File excelFile = new File(realPath);
if(!excelFile.exists()) {
excelFile.mkdirs();
}
excelName = realPath+ "\\" + excelName+".txt";
return excelName;
}
private static void downloadFile(String strfileName) {
try {
// 获得ServletContext对象
if(excelFileNotFund(strfileName)) {
throw new IllegalArgumentException("File=["+strfileName+"] not fund file path");
}
// 取得文件的绝对路径
File excelFile = getExcelDownloadPath(strfileName);
putResponseStream(strfileName, excelFile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* @param strfileName : 文件名称
* @param excelName : 文件的相对路径或绝对路径
* @throws UnsupportedEncodingException
* @throws FileNotFoundException
* @throws IOException
*/
private static void putResponseStream(String strfileName, File excelName)
throws UnsupportedEncodingException, FileNotFoundException,
IOException {
strfileName = URLEncoder.encode(strfileName, "UTF-8");
excelResponse.setHeader("Content-disposition","attachment; filename=" + strfileName+".txt");
excelResponse.setContentLength((int) excelName.length());
// excelResponse.setContentType("application/x-download");
// excelResponse.setContentType("application/vnd.ms-Excel");
excelResponse.setContentType("application/x-msdownload");
byte[] buffer = new byte[4096];
int i = 0;
FileInputStream fis = new FileInputStream(excelName);
while ((i = fis.read(buffer,0,4096)) > 0) {
JspWriter out = null;
excelResponse.getOutputStream().write(buffer, 0, i);
}
excelResponse.flushBuffer();
}
//用传入参数的判断
private static boolean excelFileNotFund(String strfileName) {
return strfileName == null|| strfileName.equals("");
}
public static File getExcelDownloadPath(String excelName) {
String realPath = excelRequest.getRealPath("/UploadFile");
excelName = realPath+ "\\" + excelName+".txt";
File excelFile = new File(excelName);
return excelFile;
}
/**
* 输入当前WorkBook为下载临时文件记录
*
* @param excelName
*/
public void writerFileStream(String excelName,String resultStr) {
try {
fileOut = new FileOutputStream(excelName);
fileOut.write(resultStr.getBytes());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fileOut.flush();
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//FileOutputStream fis = new FileOutputStream();
}
}
分享到:
相关推荐
总结,`FileUtils`是Apache Commons IO库的一个强大工具,能够简化Java Web应用中的文件操作,包括上传和下载。通过引入这个库,你可以高效地处理文件上传的保存和文件下载的发送,从而提升开发效率和代码质量。结合...
总的来说,`fileutils-1.0.zip`提供的评级组件简化了Java Swing应用中的用户评级功能的实现,使得开发者无需从零开始编写复杂的图形界面和交互逻辑,提高了开发效率并保持了良好的用户体验。开源项目的特性也意味着...
在Android系统中,获取应用程序的大小、数据大小以及缓存数据是开发者或用户进行性能优化、存储管理的重要操作。下面将详细介绍如何实现这些功能,并解释相关知识点。 首先,我们需要了解Android应用的存储结构。每...
在进行多文件下载时,我们主要会用到AFinal的`HttpClient`和`FileUtils`两个模块。 1. **配置afinal**:在项目中引入afinal库,可以在`build.gradle`文件中添加依赖。在Android Studio中,添加如下代码: ```...
在Android开发中,数据传输和文件下载是常见的需求,尤其是对于大型应用或更新包的下载。本示例"GHDownload_android_"聚焦于Android平台上的单线程与多线程断点续传下载技术,这对于提升用户体验和优化网络资源利用...
在UI设计上,可以使用通知栏来提示下载状态,或者创建一个浮动小窗口(悬浮窗)展示当前音乐播放状态。 综上所述,实现"Android实例:多线程文件下载+在线音乐播放+清除下载文件"这一功能,需要对Android的多线程...
文件实用程序 FileUtil 是库项目,用于在内部和外部存储中或从内部和外部存储中读取和写入文件(byteArray)。 如何在代码中使用此库 - 用于在内部存储中/从内部存储中读取和写入文件中的字符串 ...
比如,当你从互联网上下载一个未知编码的文本文件时,正确识别其字符集才能确保内容能够正常显示。再比如,处理多语言邮件或者网页时,字符集检测可以避免乱码问题,提升用户体验。"juniversalchardet"提供的便捷...
《PyPI官网下载 | oslo.utils-3.42.1.tar.gz:深入解析Python实用工具库oslo.utils》 在Python的世界里,丰富的第三方库是其强大魅力的一部分。PyPI(Python Package Index)作为官方的Python软件包仓库,为开发者...
在本文中,我们将深入探讨如何使用JSF来实现在Web应用程序中下载文件的功能。主要涉及的关键知识点包括: 1. **JSF上下文环境获取**: 在`downloadFile`方法中,首先通过`FacesContext.getCurrentInstance()`获取...
注意:在实际应用中,还需要考虑错误处理、网络状态检测、断点续传、下载队列管理等复杂情况,以提高用户体验和下载效率。Afinal框架虽然简洁易用,但在处理大量并发任务时可能稍显力不从心,对于大型项目,更推荐...
将此行添加到应用程序的 Gemfile 中: gem 's3_utils' 然后执行: $ bundle 或者自己安装: $ gem install s3_utils 依赖 用法 require 's3_utils' 这个模块有一些方法。 #upload_to_s3 将本地文件上传到 ...
在Java开发中,文件上传和下载是常见的功能需求,尤其在网络应用中,如网页、桌面应用或移动应用。为了实现这些功能,开发者通常需要引入特定的库或jar包。在这个场景下,"文件上传下载需要的jar包"指的是用于处理...
通过上述方法,我们可以在JSP应用中有效地禁用迅雷等第三方下载工具,同时确保用户能够通过“右键另存为”的方式安全地下载文件。这不仅提高了用户体验,还增强了系统的安全性。需要注意的是,实际部署时还需要考虑...
在Java编程中,文件下载是常见的需求,例如从服务器向客户端传输文件,或者在应用程序内部获取网络资源。本文将详细探讨Java实现文件下载的几种主要方法。 ### 1. 使用HttpServletResponse #### 1.1 设置Content-...
3. `FileUtils`: 文件操作相关的辅助类,用于删除应用数据。 最后,程序的更新涉及到增量更新和全量更新。增量更新仅替换已修改的文件,而全量更新则覆盖整个APK。Android系统会检查新旧版本的差异,执行相应的更新...
在Java编程中,下载文件是一项常见的任务,尤其在构建Web应用程序时。这篇博客"java下载文件的种方式"可能详细介绍了几种不同的Java实现文件下载的方法。以下是对这些方法的总结和扩展: 1. **HTTP响应流下载** 这...
同时,对于图片下载,可以创建一个返回文件内容的接口,例如`@GetMapping("/download/{filename}")`,在该接口中,使用`FileUtils`类读取文件,然后设置响应头,将文件内容作为HTTP响应的正文发送给客户端。...
FileUtils.java提供文件复制功能,支持文件的复制操作。 ImageUtils.java包含图片选择、拍照、裁剪等功能的方法。 MainActivity.java应用的主活动,负责用户交互和图片处理的主要逻辑。 MyConstant.java定义应用...
使用"pd-fileutils.parser",开发者可以在Web应用中实现动态数据加载和分析,比如用户上传文件后立即进行数据预览和初步处理,也可以在Node.js环境中处理大量服务器端的数据操作。这个工具可能还提供了错误处理机制...