package com.vefan.csv;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.vefan.common.util.FileUtils;
public class CsvWriter
{
public static void main(String args[]){
CsvWriter cw = new CsvWriter();
String csvFile = "E:/workspace/JavaApp/csv/createCSV.csv";
cw.createCSV(csvFile);
String localPath = "E:/workspace/JavaApp/csv/";
String fName = "createCsvByList.csv";
String sTitle = "ID,NAME,SEX,EMAIL,TEL";
List listSource = new ArrayList();
listSource.add("1,tomcat,male,tomcat@tomcat.com,1383838438");
listSource.add("2,Jboss,male,jboss@jboss.com,1484848748");
cw.createCSVByList(listSource, sTitle, localPath, fName);
}
/**
* 复制csv文件
* @param source 源文件
* @param dest 目标文件
* */
public void copyCSV(String source, String dest){
try
{
FileChannel in = new FileInputStream(source).getChannel();
FileChannel out = new FileOutputStream(dest).getChannel();
// in.transferTo(0, in.size(), out);
out.transferFrom(in, 0, in.size());
in.close();
out.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 创建csv文件
* @param csvFile csv完整文件名
* */
public void createCSV(String csvFile){
FileWriter fw = null;
try
{
fw = new FileWriter(csvFile);
fw.write("ID,CODE,NAME,EMAIL,TEL\r\n");
fw.write("1,system,上将,vefan@hotmail.com,15935785489\r\n");
fw.write("2,sysman,中尉,vefan@hotmail.com,15687596324\r\n");
fw.write("3,sys,少尉,vefan@hotmail.com,15826589752\r\n");
fw.flush();
fw.close();
} catch (IOException e)
{
e.printStackTrace();
}finally{
if(null != fw){
try
{
fw.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}
/**
* 创建csv文件
* @param listSource 行数据
* @param sTitle 字段名
* @param localPath 目录路径
* @param fName 文件名
* */
public void createCSVByList(List listSource, String sTitle, String localPath, String fName){
ByteArrayOutputStream out = new ByteArrayOutputStream();
FileOutputStream fos = null;
try
{
out.write(sTitle.getBytes());
out.write(",".getBytes());
out.write("\n".getBytes());
Iterator it = listSource.iterator();
while(it.hasNext()){
String value = (String)it.next();
out.write(value.getBytes());
out.write(",".getBytes()); //以逗号为分隔符
out.write("\n".getBytes()); //换行
}
//没有目录,先生成目录
FileUtils fileTool = new FileUtils();
fileTool.newFolder(localPath);
File newfile = new File(localPath,fName);
fos = new FileOutputStream(newfile);
fos.write(out.toByteArray());
fos.flush();
out.close();
fos.close();
} catch (IOException e)
{
e.printStackTrace();
}finally{
try
{
if(null != out) out.close();
if(null != fos) fos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
System.out.println("生成"+fName+"完成");
}
}
分享到:
相关推荐
一个简单的java生成CSV文件
本文将深入探讨如何读取和创建CSV文件,并特别关注自动解析文件编码方式这一关键环节。我们将使用Java语言进行示例,同时引入第三方库来辅助处理编码问题。 首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔...
本篇文章将深入探讨如何使用univocity-parsers库来创建CSV文件,以及如何利用JSCH库将生成的CSV文件上传到SFTP(Secure File Transfer Protocol)服务器。 首先,让我们了解univocity-parsers库。这是一个强大的...
首先,`javacsv`是一个轻量级的Java库,专门用于处理CSV文件。它提供了简单易用的API,使我们能够轻松地读取和写入CSV数据。在项目中使用这个库,你需要先将其添加到你的类路径中。如果你使用的是Maven,可以在pom....
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
要创建新的CSV文件或者向已有文件追加数据,可以使用`CSVPrinter`类。以下代码展示了如何写入CSV数据: ```java import org.apache.commons.csv.*; public class CSVWriter { public static void main(String...
首先,我们需要了解如何在Java中生成CSV文件。CSV文件主要由一系列行组成,每行包含一个或多个以逗号分隔的值。在Java中,我们可以使用`BufferedWriter`或者`PrintWriter`来创建和写入这些文件。例如: ```java ...
下面将详细解释如何使用Java生成CSV文件,以`CSVUtils`类为例进行说明。 首先,`CSVUtils`类通常包含用于生成CSV文件的核心方法。在给出的代码中,`createCSVFile`方法是生成CSV文件的主要入口。该方法接收四个参数...
`javacsv`是由Dave Taylor创建的一个小型库,专门用于读写CSV文件。下面我们将详细探讨如何使用Java和`javacsv`库对CSV文件进行读写操作。 **1. 添加javacsv依赖** 在进行读写操作前,你需要将`javacsv.jar`添加到...
本篇将详细介绍如何在Java中解析CSV文件,并以给定的"Java解析CSV文件"主题为例,结合提供的资源——`lucky_number_format.csv`、`javacsv-2.0.jar`和`CsvUtil.java`进行深入探讨。 首先,我们来看`javacsv-2.0.jar...
本篇文章将深入探讨如何使用Java来读取和写入CSV文件,并介绍一些通用的接口和方法。 首先,Java标准库并未提供专门处理CSV的类,但我们可以借助第三方库如Apache Commons CSV、OpenCSV或Java 8及以上版本的内置`...
本篇文章将深入探讨如何使用Java实现CSV文件的生成,并将其通过SFTP(Secure File Transfer Protocol)协议上传到指定服务器。 首先,我们要介绍的是用于生成CSV文件的库:univocity-parsers。这是一个高效、灵活且...
在Java中,我们可以使用`BufferedWriter`或者Apache Commons CSV库来实现CSV文件的创建。 1. 使用`BufferedWriter`: ```java import java.io.*; public void exportCSV(String[] headers, List[]> data) { try ...
2. **创建CsvReader实例**:创建`CsvReader`对象时,需要传入一个打开的`BufferedReader`,该`BufferedReader`通常基于一个指向CSV文件的`FileInputStream`或`InputStreamReader`。 ```java File file = new File...
当需要处理这些数据时,Java提供了一些库和方法来读取、解析和操作CSV文件,进而将这些数据写入数据库。 首先,我们来讨论如何在Java中读取CSV文件。最常用的库是Apache Commons CSV和OpenCSV。这两个库都提供了...
创建CSV文件的基本步骤包括打开输出流、写入数据并关闭输出流。以下是一个简单的示例,使用`PrintWriter`来实现: ```java import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; ...
这个"java 读写csv文件 csv process"接口为处理CSV文件提供了一个全面的解决方案,它不仅实现了基本的读写功能,还支持数据转换和高级的文件修改操作。这样的接口对于需要处理CSV数据的Java项目来说非常实用,简化了...
【Java生成CSV文件的背景】 在Java中,处理Excel文件通常使用Apache POI库,虽然POI功能强大,但处理大量数据时会占用大量内存,尤其是在导出数据时。为了解决这个问题,开发者可以转向生成CSV文件,因为CSV文件本质...
在Eclipse中,你可以创建一个新的Java项目,将CSV文件放入项目的资源目录下,然后编写上述代码进行测试。记得在运行前检查CSV文件的编码格式,确保与Java程序的编码设置一致,以防止乱码问题。 通过这种方式,你...
1. **创建CSVReader对象:** `CSVReader`是`javacsv`的核心类,用于读取CSV文件。创建`CSVReader`对象时,通常需要提供一个`BufferedReader`,该`BufferedReader`应该已经打开并指向CSV文件。例如: ```java ...