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.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class CsvJava {
public static void main(String[] args) {
List exportData = new ArrayList<Map>();
Map row1 = new LinkedHashMap<String, String>();
row1.put("1", "11");
row1.put("2", "12");
row1.put("3", "13");
row1.put("4", "14");
exportData.add(row1);
row1 = new LinkedHashMap<String, String>();
row1.put("1", "21");
row1.put("2", "22");
row1.put("3", "23");
row1.put("4", "24");
exportData.add(row1);
List propertyNames = new ArrayList();
LinkedHashMap map = new LinkedHashMap();
map.put("1", "第一列");
map.put("2", "第二列");
map.put("3", "第三列");
map.put("4", "第四列");
createCSVFile(exportData, map, "d:/aaaaaa/mmm/", "活动目录");
}
public static File createCSVFile(List exportData, LinkedHashMap rowMapper,
String outPutPath, String filename) {
File csvFile = null;
BufferedWriter csvFileOutputStream = null;
try {
csvFile = new File(outPutPath + filename + ".csv");
// csvFile.getParentFile().mkdir();
File parent = csvFile.getParentFile();
if (parent != null && !parent.exists()) {
parent.mkdirs();
}
csvFile.createNewFile();
// GB2312使正确读取分隔符","
csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(csvFile), "GB2312"), 1024);
// 写入文件头部
for (Iterator propertyIterator = rowMapper.entrySet().iterator(); propertyIterator
.hasNext();) {
java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator
.next();
csvFileOutputStream.write("\""
+ propertyEntry.getValue().toString() + "\"");
if (propertyIterator.hasNext()) {
csvFileOutputStream.write(",");
}
}
csvFileOutputStream.newLine();
// 写入文件内容
for (Iterator iterator = exportData.iterator(); iterator.hasNext();) {
Object row = (Object) iterator.next();
for (Iterator propertyIterator = rowMapper.entrySet()
.iterator(); propertyIterator.hasNext();) {
java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator
.next();
csvFileOutputStream.write("\""
+ BeanUtils.getProperty(row,
propertyEntry.getKey().toString())
.toString() + "\"");
if (propertyIterator.hasNext()) {
csvFileOutputStream.write(",");
}
}
if (iterator.hasNext()) {
csvFileOutputStream.newLine();
}
}
csvFileOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
csvFileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return csvFile;
}
}
分享到:
相关推荐
Java读取CSV例子是通过使用javacsv-2.0.jar包来实现的。javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来读取和写入CSV文件。 ...
`javacsv`库是处理CSV文件的一种工具,特别是`CsvReader`类,它提供了方便的方法来读取和解析这些文件。 `CsvReader`是`javacsv`库中的核心类,用于读取CSV文件并将其内容转换为Java对象。这个库由`csv`和`java`...
在Java编程中,CSV(Comma Separated Values)文件是一种常用的格式,用于存储表格数据,如电子表格或数据库。在处理CSV文件时,尤其是涉及中文字符时,可能会遇到乱码问题。这个问题通常与字符编码设置有关。下面...
### Java操作CSV文件知识点 #### 一、简介与背景 在日常的数据处理工作中,CSV(Comma-Separated Values)文件是一种常见的数据交换格式。它简单易用且跨平台兼容性好,常被用于导入导出数据、数据分析等场景。在...
本篇文章将详细讲解如何使用javacsv库来实现这一功能。 首先,`javacsv`是一个轻量级的Java库,专门用于处理CSV文件。它提供了简单易用的API,使我们能够轻松地读取和写入CSV数据。在项目中使用这个库,你需要先将...
在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...
一个简单的java生成CSV文件
java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。
在Java中,处理CSV文件通常需要借助第三方库,如本示例中的`javacsv.jar`。`javacsv`是由Dave Taylor创建的一个小型库,专门用于读写CSV文件。下面我们将详细探讨如何使用Java和`javacsv`库对CSV文件进行读写操作。 ...
本人以JAVA来实现以支付宝的账单表为例,实现JAVA读取CSV..csv是一种文件格式(如.txt、.doc等),也可理解.csv文件就是一种特殊格式的纯文本文件。即是一组字符序列,字符之间已英文字符的逗号或制表符(Tab)分隔。
首先,Java并没有内置的库直接支持CSV操作,但我们可以借助第三方库,如Apache Commons CSV、OpenCSV或Java 8引入的java.util.CSV API。在这里,我们以Apache Commons CSV为例,因为它是业界广泛使用的库,提供了...
在Java编程中,处理CSV(Comma Separated Values)文件是一项常见的任务,特别是在数据导入导出、数据分析等领域。SuperCSV是一个强大的开源库,专门用于处理CSV文件,它提供了丰富的功能和灵活的API,使得在Java中...
在Java编程中,CSV(Comma Separated Values)文件是一种常见的数据存储格式,它以逗号分隔每一列的数据,方便数据交换和处理。当处理包含中文字符的CSV文件时,可能会遇到乱码问题,这通常与文件编码设置有关。本篇...
java 导出csv格式文件(支持实体类输入)
为了解决这个问题,可以使用 javacsv 库,javacsv 库可以正确地读取 CSV 文件,包括特殊字符的处理。 以下是使用 javacsv 库读取 CSV 文件的示例代码: Java 代码: ```java public List[]> importCsv(String file...
本篇将详细介绍如何在Java中解析CSV文件,并以给定的"Java解析CSV文件"主题为例,结合提供的资源——`lucky_number_format.csv`、`javacsv-2.0.jar`和`CsvUtil.java`进行深入探讨。 首先,我们来看`javacsv-2.0.jar...
在Java编程环境中,导出CSV(逗号分隔值)文件并将其压缩成ZIP格式是一项常见的任务,特别是在处理大量数据时。CSV文件因其简洁、通用的格式,常用于数据交换和存储。本教程将深入讲解如何实现这个过程,并提供前...
在Java编程环境中,导出CSV(Comma Separated Values)文件是一种常见的数据交换格式,尤其在数据处理和分析中非常流行。CSV文件以其简洁、易读的特性,使得它们成为跨平台传输数据的理想选择。本篇文章将深入探讨...
JavaCSV库是一个用于Java编程语言的数据导入和导出工具,主要功能是帮助开发者处理CSV(逗号分隔值)文件。CSV格式广泛应用于数据交换,因为它简单、通用且易于读写。javacsv-2.1.jar是这个库的一个特定版本,它包含...