博客
关于我
文本读取和csv文件生成工具类的编写
阅读量:354 次
发布时间:2019-03-04

本文共 3811 字,大约阅读时间需要 12 分钟。

1、文本的读取

 /**     * 读取log或者txt信息     *     * @param filePath     * @return     */    private static List<String> readLog(String filePath) {           List<String> list = new ArrayList<String>();        try {               FileInputStream is = new FileInputStream(filePath);            InputStreamReader isr = new InputStreamReader(is);            BufferedReader br = new BufferedReader(isr);            String line;            try {                   while ((line = br.readLine()) != null) {                       if (line.equals(""))                        continue;                    else                        list.add(line);                }            } catch (IOException e) {                   e.printStackTrace();                System.out.println("读取一行数据时出错");            }        } catch (FileNotFoundException e) {               e.printStackTrace();            System.out.println("文件读取路径错误FileNotFoundException");        }        return list;    }

2、csv文件的生成

import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.List;/** * @author lizhangyu * @version 1.0 * @description * @date 2020/8/19 19:41 */public class CSVUtil {       /**     * CSV文件生成方法     * @param head     * @param dataList     * @param outPutPath     * @param filename     * @return     */    public static File createCSVFile(List<Object> head, List<List<Object>> dataList,                                     String outPutPath, String filename) {           File csvFile = null;        BufferedWriter csvWtriter = null;        try {               csvFile = new File(outPutPath + File.separator + filename + ".csv");            System.out.println(File.separator);            File parent = csvFile.getParentFile();            if (parent != null && !parent.exists()) {                   parent.mkdirs();            }            csvFile.createNewFile();            csvWtriter =  new BufferedWriter(new OutputStreamWriter(new FileOutputStream( csvFile)));            // 写入文件头部            writeRow(head, csvWtriter);            // 写入文件内容            for (List<Object> row : dataList) {                   writeRow(row, csvWtriter);            }            csvWtriter.flush();        } catch (Exception e) {               e.printStackTrace();        } finally {               try {                   csvWtriter.close();            } catch (IOException e) {                   e.printStackTrace();            }        }        return csvFile;    }    /**     * 写一行数据方法     * @param row     * @param csvWriter     * @throws IOException     */    private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException {           // 写入文件头部        for (Object data : row) {               StringBuffer sb = new StringBuffer();            String rowStr = sb.append("\"").append(data).append("\",").toString();            csvWriter.write(rowStr);        }        csvWriter.newLine();    }    public static void main(String[] args) {           List<Object> exportData = new ArrayList<Object>();        exportData.add("第一列");        exportData.add("第二列");        exportData.add("第三列");        List<List<Object>> datalist = new ArrayList<List<Object>>();        List<Object> data=new ArrayList<Object>();        data.add("111");        data.add("222");        data.add("333");        List<Object> data1=new ArrayList<Object>();        data1.add("444");        data1.add("555");        data1.add("666");        datalist.add(data);        datalist.add(data1);        String path = "d:/export/";        String fileName = "文件导出";        File file = CSVUtil.createCSVFile(exportData, datalist, path, fileName);        String fileName2 = file.getName();        System.out.println("文件名称:" + fileName2);    }}

转载地址:http://efrr.baihongyu.com/

你可能感兴趣的文章
编译Linux内核--制作文件系统--远程调试程序
查看>>
启动加载器BootLoader
查看>>
力扣239. 滑动窗口最大值
查看>>
史上最全Vue的组件传值
查看>>
CSS position属性static/relative/absolute/fixed/sticky用法总结
查看>>
6.14编一个程序,将两个字符串s1和s2比较,不要用strcmp函数。
查看>>
如何解决vscode检测到#include错误,请更新includePath。
查看>>
1007 Maximum Subsequence Sum (25分) Python解法
查看>>
Java纯文本文件显示工具制作
查看>>
1035 Password (20分)
查看>>
Unity2D Fixed Joint 2D详解
查看>>
Unity Shader之路(五)创建第一个顶点/片元着色器?
查看>>
L3-008 喊山 (30分) C++ BFS题解
查看>>
Web框架——Flask系列之Flask-SQLAlchemy数据库的基本操作(九)
查看>>
LeetCode 每日一题 766. 托普利茨矩阵
查看>>
LeetCode 每日一题 131. 分割回文串 dfs
查看>>
六、Numpy的使用(详解)
查看>>
python爬虫——代理IP
查看>>
二、bootstrap4基础(flex布局)
查看>>
三、案例:留言板 & url.parse()
查看>>