使用CsvReader读取和写入csv文件
2018-01-30 01:29
295 查看
使用CsvReader读取和写入csv文件的简单操作Demo:
下面是我仿照csvWriter简化实现的CsvWriter
不论是csvWriter还是csvReader都提供用户自定义分隔符方法,使用方式是:
demo项目请见:https://github.com/haoziiy/csvReaderDemo.git
import com.csvreader.CsvReader; import com.csvreader.CsvWriter; import java.io.FileNotFoundException; import java.io.IOException; import java.lang.reflect.Array; import java.nio.charset.Charset; import java.util.Arrays; /** * Created by sherry on 2018/1/29. * @noinspection ALL */ public class testJavaCsvAPI { public static void main(String[] args) throws IOException { String writerCsvFilePath = "src/resource/writer.csv"; CsvWriter csvWriter = new CsvWriter(writerCsvFilePath, ',', Charset.forName("UTF-8")); String[] contents = {"Lily","五一","90","女"}; csvWriter.writeRecord(contents); csvWriter.close(); String readerCsvFilePath = "src/resource/reader.csv"; CsvReader csvReader = new CsvReader(readerCsvFilePath, ',', Charset.forName("UTF-8")); csvReader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。 String[] head = csvReader.getHeaders(); //获取表头 while (csvReader.readRecord()) { for (int i = 0; i < head.length; i++) { System.out.println(head[i] + ":" + csvReader.get(head[i])); } } csvReader.close(); } }
下面是我仿照csvWriter简化实现的CsvWriter
不论是csvWriter还是csvReader都提供用户自定义分隔符方法,使用方式是:
// 例如,要使用;作为csv的分隔符 csvReader.setDelimiter(';');
import java.io.*; import java.nio.charset.Charset; public class CsvWriterUtil { private Writer outputStream; private String fileName; public char delimiter = ',';// 分隔符 public Charset charset; private boolean initialized; private boolean closed; private boolean firstColumn; public CsvWriterUtil(String fileName, char delimiter, Charset charset) { this.closed = false; this.initialized = false; this.firstColumn = true; if (fileName == null) { throw new IllegalArgumentException("Parameter fileName can not be null."); } if (charset == null) { throw new IllegalArgumentException("Parameter charset can not be null."); } this.fileName = fileName; this.delimiter = delimiter; this.charset = charset; } public CsvWriterUtil(String fileName) { this(fileName, ',', Charset.forName("UTF-8")); } public CsvWriterUtil(String fileName, char delimiter) { this(fileName, delimiter, Charset.forName("UTF-8")); } public char getDelimiter() { return delimiter; } public void setDelimiter(char delimiter) { this.delimiter = delimiter; }// 自定义分隔符 private void checkClosed() throws IOException { if(this.closed) { throw new IOException("This instance of the CsvWriter class has already been closed."); } } private void checkInit() throws IOException { if(!this.initialized) { if(this.fileName != null) { this.outputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.fileName), this.charset)); } this.initialized = true; } } public void write(String var1) throws IOException { this.checkClosed(); this.checkInit(); if(var1 == null) { var1 = ""; } if(!this.firstColumn) { this.outputStream.write(this.delimiter); } if(var1.length() > 0) { var1 = var1.trim(); } this.outputStream.write(var1); this.firstColumn = false; } public void writeRecord(String[] var1) throws IOException { if(var1 != null && var1.length > 0) { for(int i = 0; i < var1.length; ++i) { this.write(var1[i]); } this.endRecord(); } } public void endRecord() throws IOException { this.checkClosed(); this.checkInit(); this.firstColumn = true; } public void flush() throws IOException { this.outputStream.flush(); } public void close() { if(!this.closed) { this.charset = null; try { if (this.initialized) { this.outputStream.close(); } } catch (Exception var3) { ; } this.outputStream = null; this.closed = true; } } }
demo项目请见:https://github.com/haoziiy/csvReaderDemo.git
相关文章推荐
- java使用CsvReader和CsvWriter对csv文件内容进行读取和写入操作
- 使用 JavaCSV api 读取和写入 csv 文件
- 使用Python读取和写入CSV文件
- php对csv文件的读取,写入,输出下载操作
- C# 使用WINAPI 进行读取写入配置文件
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告使用 Java 和 XML 技术读取 Excel 文件并写入新文件(1)
- 使用FileReader和FileWriter读取写入文件内容
- .NET(C#)中将DataTable内容写入到CSV文件 与 将CSV文件内容读取到DataTable中(原创)
- 如何读取和写入文件或 BLOB 列使用 ADO.NET 和 Visual C#.NET
- ASP.NET中文件流的使用——下载Excle文件、文件的读取和写入
- Java 使用DataInputStream将数据写入文件,使用FileReader读取演示
- Java-流的简单使用:读取文件、写入文件(面试题:删除注释代码)
- 读取.csv文件到底使用哪种方式效率更高?
- Silverlight4使用radgridview读取导出CSV文件
- Java从.CSV文件中读取数据和写入
- 使用python读取csv文件,并将数据更新至mysql
- php对csv文件的读取,写入,输出下载操作
- Java-流的简单使用:读取文件、写入文件(面试题:删除注释代码)
- NET(C#)中将DataTable内容写入到CSV文件 与 将CSV文件内容读取到DataTable中(原创)
- 使用Python读取和写入mp3文件的id3v1信息