java下载txt
来源:互联网 发布:c语言每行输出5个 编辑:程序博客网 时间:2024/04/26 13:23
package com.fh.util;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;public class TxtUtils { //读取txt编码格式 private static String getCharset(String fileName) throws IOException{ HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); BufferedInputStream bin = new BufferedInputStream(new FileInputStream(request.getSession().getServletContext().getRealPath(fileName))); int p = (bin.read() << 8) + bin.read(); String code = null; switch (p) { case 0xefbb: code = "UTF-8"; break; case 0xfffe: code = "Unicode"; break; case 0xfeff: code = "UTF-16BE"; break; default: code = "GBK"; } return code; } /** * 功能:Java读取txt文件的内容 * 步骤:1:先获得文件句柄 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline()。 * 备注:需要考虑的是异常情况 * @param filePath */ public static String readTxtFile(String filePath){ HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); try { String encoding = getCharset(filePath); File file = new File(request.getSession().getServletContext().getRealPath(filePath)); if(file.isFile() && file.exists()){//判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file),encoding);//考虑到编码格式 BufferedReader br = new BufferedReader(read); String lineTxt = null; List<String> lineTxtArray = new ArrayList<String>(); while((lineTxt = br.readLine())!= null){ System.out.println(lineTxt); lineTxtArray.add(lineTxt); } read.close(); String lineTxts = ""; for (int i = 0; i < lineTxtArray.size(); i++) { if(i != lineTxtArray.size() - 1){ lineTxts += lineTxtArray.get(i) + "\r\n"; }else{ lineTxts += lineTxtArray.get(i) ; } } return lineTxts; }else{ System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return null; }}
//控制层 /** * 下载txt * @param response * @throws IOException */ @RequestMapping(value = "/download") public void download(HttpServletResponse response,String filePath ) throws IOException{ //用result来保存txt文档的内容,具体内容请自己写读取流操作 byte[] result =TxtUtils.readTxtFile(filePath).getBytes(); OutputStream os = response.getOutputStream(); try { response.reset(); response.setHeader("Content-Disposition", "attachment; filename=" + new Date().getTime() + ".txt"); response.setContentType("text/plain;charset=utf-8"); os.write(result); os.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (os != null) { os.close(); } } }
0 0
- java下载txt
- java导出Txt文件怎么下载
- Java生成Txt文件及下载
- java版txt文件下载解决
- java爬虫之下载txt小说
- java 往ftp上上传跟下载txt文件
- java通知ie下载不打开,比如附件txt
- JAVA实现下载浏览器可以识别的TXT等文件。
- jsp下载txt/execl
- .txt文件的下载
- 盾击txt免费下载
- 下载txt文件
- txt文件下载
- 自定义TxT文档下载
- PHP 下载txt文件
- java txt
- php点击下载txt文件
- 3K下载者.txt
- c++用整型数组初始化一个vector对象
- JVM运行时数据区域
- 欢迎使用CSDN-markdown编辑器
- Discuz!自制模板带jquery时与discuz本身冲突解决办法
- LINUX下tree命令的模仿
- java下载txt
- 打个招呼
- Tomcat正统类加载器架构
- Bootstrap的aria-label和aria-labelledby
- c基础练习
- ngCloak 实现 Angular 初始化闪烁最佳实践
- Onvif框架代码生成
- Android开发之--布局中包含listview时 如何去除listview的默认置顶(焦点)
- Odoo Wizards