Java生成Txt文件及下载

package com.saicfc.pmpf.internal.manage.utils;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;

import com.saicfc.pmpf.common.enums.ChannelCodeEnums;

/**
 * 生成TXT文件
 * @author lizhiyong
 * @version $Id: TxtUtils.java, v 0.1
		2014年9月11日 上午8:40:02 Exp $
 */
public class TxtUtils {

    @SuppressWarnings("rawtypes")
    public static File writeTxtFile(String channelCode, List contentList, LinkedHashMap map,
                                    String filePath, String readStr, String fileName)
                                                                                     throws IOException {

        File file = new File(filePath);
        if (!file.exists()) {
            file.mkdir();
            System.out.println("文件夹已创建");
        }
        //定义文件名格式并创建
        File txtFile = File.createTempFile(fileName, ".txt", new File(filePath));
        //先读取原有文件内容,然后进行写入操作
        FileWriter writer = null;

        if (CommonUtils.isNotEmpty(map)) {
            //写入头信息
            String filein = "";
            for (Iterator tileIterator = map.entrySet().iterator(); tileIterator.hasNext();) {
                java.util.Map.Entry propertyEntry = (java.util.Map.Entry) tileIterator.next();
                filein += (String) propertyEntry.getValue() == null ? "" : (String) propertyEntry
                    .getValue();
                if (tileIterator.hasNext()) {
                    filein = filein + "                 ";
                }
            }
            try {
                writer = new FileWriter(txtFile, true);
                writer.write(filein);
            } catch (IOException e1) {
                e1.printStackTrace();
            } finally {
                if (writer != null) {
                    try {
                        writer.close();
                    } catch (IOException e2) {
                        e2.printStackTrace();
                    }
                }
            }
        }
        //写入详细信息
        int num = 1;
        for (Iterator iterator = contentList.iterator(); iterator.hasNext();) {
            LinkedHashMap txtMap = (LinkedHashMap) iterator.next();
            String filein1 = "";
            for (Iterator propertyIterator = txtMap.entrySet().iterator(); propertyIterator
                .hasNext();) {
                java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();
                filein1 += (String) propertyEntry.getValue() == null ? "" : (String) propertyEntry
                    .getValue();
                if (propertyIterator.hasNext()) {
                    filein1 = filein1 + readStr;
                }
            }
            try {
                System.out.println("数据filein1:" + filein1);
                //给建行生成序号
                if (ChannelCodeEnums.CCB.getChannelCode().equals(channelCode)) {
                    filein1 = String.valueOf(num) + filein1;
                }
                writer = new FileWriter(txtFile, true);
                writer.write(filein1);
                //中国银行每行以换行结束
                if (ChannelCodeEnums.BOC.getChannelCode().equals(channelCode)) {
                    writer.write("\r\n");
                } else if (ChannelCodeEnums.CIB.getChannelCode().equals(channelCode)) {
                    writer.write("\r\n");
                } else {
                    if (num < contentList.size()) {
                        writer.write("\r\n");
                    }
                    num++;
                }
            } catch (IOException e1) {
                e1.printStackTrace();
            } finally {
                if (writer != null) {
                    try {
                        writer.close();
                    } catch (IOException e2) {
                        e2.printStackTrace();
                    }
                }
            }
        }
        return txtFile;
    }

}

BigDecimal amountDecimal = new BigDecimal(0);
            for (Iterator iterator = exportData.iterator(); iterator.hasNext();) {
                LinkedHashMap cebMap = (LinkedHashMap) iterator.next();
                String amount = (String) cebMap.get("amount");
                BigDecimal amountDecimal2 = BigDecimal.valueOf(Double.parseDouble(amount))
                    .setScale(2, BigDecimal.ROUND_HALF_UP);
                amountDecimal = amountDecimal.add(amountDecimal2);
            }
            int cebdataSize = exportData.size();
            LinkedHashMap amountHashMap = new LinkedHashMap();
            amountHashMap.put("amount", amountDecimal.toPlainString());
            exportData.add(0, amountHashMap);
            LinkedHashMap sizeHashMap = new LinkedHashMap();
            sizeHashMap.put("totalCount", String.valueOf(cebdataSize));
            exportData.add(1, sizeHashMap);
            String readStr = ",";
            String fileName = "光大银行(CEB)退款数据";
            //创建文件
            File file = TxtUtils.writeTxtFile(channelCode, exportData, map, filePath, readStr,
                fileName);
            //下载文件
            downLoadFile(response, filePath, file);
    /**
     * 下载文件
     * @param response
     * @param filePath  文件路径
     * @param file   文件
     * @throws IOException
     */
    public void downLoadFile(HttpServletResponse response, String filePath, File file)
                                                                                      throws IOException {
        String fileName = file.getName();
        //下载文件
        FileManageUtils.exportFile(response, filePath + fileName, fileName);
        //删除单个文件
        FileManageUtils.deleteFile(filePath, fileName);
    }
package com.saicfc.pmpf.internal.manage.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletResponse;

/**
 * 文件管理
 * @author lizhiyong
 * @version $Id: FileManageUtils.java, v 0.1
		2014年9月11日 上午9:37:47 Exp $
 */
public class FileManageUtils {

    /**
     * 下载文件
     * @param response
     * @param csvFilePath
     *              文件路径
     * @param fileName
     *              文件名称
     * @throws IOException
     */
    public static void exportFile(HttpServletResponse response, String csvFilePath, String fileName)
                                                                                                    throws IOException {
        response.setContentType("application/csv;charset=GBK");
        response.setHeader("Content-Disposition",
            "attachment;  filename=" + new String(fileName.getBytes("GBK"), "ISO8859-1"));
        //URLEncoder.encode(fileName, "GBK")

        InputStream in = null;
        try {
            in = new FileInputStream(csvFilePath);
            int len = 0;
            byte[] buffer = new byte[1024];
            response.setCharacterEncoding("GBK");
            OutputStream out = response.getOutputStream();
            while ((len = in.read(buffer)) > 0) {
                //out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
                out.write(buffer, 0, len);
            }
        } catch (FileNotFoundException e) {
            System.out.println(e);
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

    /**
     * 删除该目录filePath下的所有文件
     * @param filePath
     *            文件目录路径
     */
    public static void deleteFiles(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                if (files[i].isFile()) {
                    files[i].delete();
                }
            }
        }
    }

    /**
     * 删除单个文件
     * @param filePath
     *         文件目录路径
     * @param fileName
     *         文件名称
     */
    public static void deleteFile(String filePath, String fileName) {
        File file = new File(filePath);
        if (file.exists()) {
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                if (files[i].isFile()) {
                    if (files[i].getName().equals(fileName)) {
                        files[i].delete();
                        return;
                    }
                }
            }
        }
    }
}
时间: 2024-11-12 19:51:57

Java生成Txt文件及下载的相关文章

java生成Ecxel文件及下载(公用)

/** * 上海汽车集团财务有限责任公司 * Copyright (c) 1994-2014 All Rights Reserved. */ package com.saicfc.pmpf.internal.manage.utils; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; i

java读取TXT文件的方法

java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 解读完成后要输出

java 读写 txt 文件

Java读取txt文件内容.可以作如下理解: 1.首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 2.通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 3.既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 4.

PHP生成TXT文件

访问PHP时生成TXT文件并自动下载. $filename = "filename.txt"; header("Content-Type: application/octet-stream"); header('Content-Disposition: attachment; filename="' . $filename . '"'); 输出内容: 直接用echo输出,“\r\n”用以换行. 第一步:处理中文文件名: $ua = $_SERVE

java读取TXT文件的方法 (转)

转自:http://www.cnblogs.com/manongxiaojiang/archive/2012/10/13/2722068.html java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了F

POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280.html . Office2007与Office Open XML 在Office 2007之前,Office一直都是以二进制位的方式存储,但这种格式不易被其它软件拿来使用,在各界的压力下,MicroSoft于2005年发布了基于XML的ooxml开放文档标准.ooxml的xml schema强调减

Java生成CSV文件实例详解

本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputS

如何在CCS上生成.txt文件并烧录到MSP430

1,在CCS上正确创建工程文件. 新建工程:File-New-CCS Project 2,在main.c文件中编写程序并保存. 1 #include <msp430f169.h> 2 /* 3 * 软件延时 4 */ 5 #define CPU_F1 ((double)1000000) 6 #define delay_us1M(x) __delay_cycles((long)(CPU_F1*(double)x/1000000.0)) 7 #define delay_ms1M(x) __dela

JAVA获取txt文件内容

JAVA 读取txt文件内容 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可. 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileReader; 4 5 6 public class txttest { 7 /** 8 * 读取txt文件的内容 9 * @param file 想要读取的文件对象 10 * @return 返回文件内容