`

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;
                    }
                }
            }
        }
    }
}



分享到:
评论

相关推荐

    java代码自动生成.txt数据文件

    例如,`maven-jaxb2-plugin`可以用来从XML Schema文件自动生成Java类。 6. **IntelliJ IDEA和Eclipse IDE集成**: 这些流行的IDE都有内置的代码生成工具,可以快速生成构造函数、getter和setter,甚至整个类的骨架...

    java读取txt文件,生成csv文件

    环境:eclipse3.7.2 jre1.6

    java生成XLS,生成TXT

    在Java中,生成TXT文件相对简单,只需使用FileWriter或者BufferedWriter即可。 3. 创建TXT文件: ```java import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public ...

    Java生成pdf文件,解决中文乱码问题.pdf

    Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...

    java生成Jar文件命令

    在Java开发过程中,将源代码编译成可执行的...总的来说,Java生成Jar文件是一个常见的任务,理解并掌握`jar`命令的使用对于Java开发者来说非常重要。通过熟练运用这些命令,你可以更高效地管理和分发你的Java应用程序。

    Java实现TXT文件转图片

    ### Java实现TXT文件转图片 #### 背景与需求 在特定的应用场景下,将文本文件转换为图像格式的需求可能会出现。例如,在创建电子书、海报或是其他类型的媒体时,有时需要将纯文本信息转化为视觉友好的图像形式。...

    java中生成xml文件,并上传至ftp服务器

    JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。

    Java代码实现txt文件转pdf文件

    2. **读取TXT文件**:使用Java的`BufferedReader`类读取TXT文件内容,并将其存储到一个字符串变量中。 ```java String content = ""; try (BufferedReader reader = new BufferedReader(new FileReader("input....

    java遍历文件目录生成树结构txt文件

    在Java编程中,遍历文件目录并生成树结构的文本文件是一个常见的任务,尤其是在处理大量文件数据时。这个任务可以通过使用Java的`java.io.File`类及其相关API来实现。`Dir.class`和`Dir.java`是这次操作的核心文件,...

    java导出txt文件,并以&分隔符每个字段数据

    java导出txt文件,并以&分隔符每个字段数据,全部代码

    java上传文件到ftp.txt

    ### Java上传文件到FTP知识点详解 #### 一、概述 在现代软件开发中,文件传输是一项常见的需求。其中,FTP(文件传输协议)是最常用的一种文件传输方式之一。本篇文章将详细阐述如何利用Java编程语言实现本地文件...

    Java去重txt文件内容(按行)

    "Java去重txt文件内容(按行)"这个主题涉及到如何利用Java语言有效地读取TXT文件,并通过比较两份文件的内容来消除重复的行。在这个过程中,Java 8引入的新特性——流(Stream)和并行流(Parallel Stream)起到了关键...

    java后台批量下载文件并压缩成zip下载的方法

    Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考以下内容。 java后台批量下载文件 在Java后台...

    使用java代码生成json文件和word文档!

    总结,使用Java生成JSON文件和Word文档需要理解数据序列化(如JSON)的概念,以及使用相关库(如Jackson和Apache POI)提供的API。通过这些库,你可以轻松地将Java对象转换为可读的JSON格式,或创建结构化的Word文档...

    JAVA根据PDF模板生成PDF文件.rar

    主要包含一个Java类`PdfUtilsPic.java`,一个PDF模板文件`M8.pdf`,以及一个名为`调用方法及Maven.txt`的文件,该文件很可能是关于如何使用这些资源的说明。 `PdfUtilsPic.java`可能是自定义的工具类,用于根据指定...

    java解析txt

    * 功能:Java读取txt文件的内容 * 步骤:1:先获得文件句柄 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline...

    java生成rtf文档,跟word文档差不多

    Java生成RTF文档是编程领域中一个常见的需求,尤其在自动化报告、数据导出或集成办公软件功能时。RTF(Rich Text Format)是一种通用格式,可以被多种文字处理程序如Microsoft Word支持,使得文件在不同平台间具有...

    TXT文件数据导入到mysql数据库

    2. **编程语言接口**:通过编程语言如Python、Java、PHP等,可以读取TXT文件并逐行处理,然后使用相应的数据库驱动(如Python的pymysql库)将数据插入到MySQL中。这在处理大量数据时可能较慢,但提供了更大的灵活性...

    读取Doc,Excel,PDF,html,生成Txt文件,读取Txt生成Excel文件 jar

    读取Doc,Excel,PDF,html,生成Txt文件,读取Txt生成Excel文件 jar 所需用的jar文件: fontbox-0.1.0.jar PDFBox-0.7.3.jar poi-3.0.1.jar tm-extractors-0.4.jar

    java生成word文件并下载.pdf

    总的来说,这段代码提供了一个完整的Java生成Word文件并下载的解决方案,结合了FreeMarker模板引擎和Java I/O操作,同时考虑了文件下载过程中的各种细节。开发者可以根据自己的实际需求,调整数据模型和模板内容,以...

Global site tag (gtag.js) - Google Analytics