csv文件其实就是格式化的txt文件,所以操作和txt文件差不多,直接上代码了:

commons-lang

commons-lang

2.5

org.ostermiller

utils

1.07.00

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Date;

import org.apache.commons.lang.time.DateFormatUtils;

import com.Ostermiller.util.CSVPrint;

import com.Ostermiller.util.CSVPrinter;

/**

*

* @author alex.wang

* csv文件写入

*

*/

public class CsvFilePrinter{

private CSVPrint csvPrint;

/**

*

* @param fileName 文件路径

* @param append 是否支持追加

* @throws IOException

*/

public CsvFilePrinter(String fileName,boolean append) throws IOException {

File file = new File(fileName);

if(!file.exists()){

csvPrint = new CSVPrinter(new FileWriter(fileName,append));

init();

}else{

csvPrint = new CSVPrinter(new FileWriter(fileName,append));

if(!append){

init();

}

}

}

public void init() throws IOException{

write(new String[]{"id","mac","val","date"});

}

public void write(String[] values) throws IOException {

csvPrint.writeln(values);

}

public static void main(String[] args) throws Exception {

String csvFile = "demo".concat("-").concat(DateFormatUtils.format(new Date(), "yyyyMMdd")).concat(".csv");

CsvFilePrinter print = new CsvFilePrinter(csvFile,false);

for(int i=0;i<10;i++){

print.write(new String[]{"50001"+i,"C914"+i,Integer.toString(-80+i),DateFormatUtils.format(new Date(), "yyyy-MM-dd")});

}

}

}

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import com.Ostermiller.util.ExcelCSVParser;

import com.Ostermiller.util.LabeledCSVParser;

/**

*

* @author alex.wang

* csv文件解析器

*

*/

public class CsvFileParser{

private LabeledCSVParser csvParser;//csv解析器,对于第一行的表头信息,自动加载为索引关键字

private int currLineNum = -1;//文件所读到行数

private String[] currLine = null;//用来存放当前行的数据

/*

* 构造函数,

* Param: in InputStream 要解析的信息流

* throws IOException

*/

public CsvFileParser(InputStream in) throws IOException {

csvParser = new LabeledCSVParser(new ExcelCSVParser(in));

currLineNum = csvParser.getLastLineNumber();

}

public CsvFileParser(String fileName) throws IOException {

InputStream in = new FileInputStream(fileName);

csvParser = new LabeledCSVParser(new ExcelCSVParser(in));

currLineNum = csvParser.getLastLineNumber();

}

/*

* 检查是否还有数据

*

* return ture 还有一行数据,false 没有数据

*/

public boolean hasMore() throws IOException {

currLine = csvParser.getLine();

currLineNum = csvParser.getLastLineNumber();

if (null == currLine)

return false;

return true;

}

/*

* 返回当前行数据,关键字所指向的数据

* param:String filedName 该行的表头

* return:String 返回当前行数据,关键字所指向的数据

*/

public String getByFieldName(String fieldName) {

return csvParser.getValueByLabel(fieldName);

}

/*

* 关闭解析器

*

*

*/

public void close() throws IOException {

csvParser.close();

}

/*

* 读取当前行数据

*

* return String[] 读取当前行数据

*/

public String[] readLine() throws IOException {

currLine = csvParser.getLine();

currLineNum = csvParser.getLastLineNumber();

return currLine;

}

public int getCurrLineNum(){

return currLineNum;

}

public static void main(String[] args) throws Exception {

//创建解析信息流

InputStream in=new FileInputStream(new File("demo.csv"));

//实例解析器CsvFileParser

CsvFileParser parser=new CsvFileParser(in);

//读取数据

while(parser.hasMore()){

System.out.print(parser.getByFieldName("time")+" ");//time 系表头数据

System.out.print(parser.getByFieldName("total")+" ");

}

parser.close();

}

}

java csv 追加_java读、写、追加CSV相关推荐

  1. java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题

    参考资料: opencsv文档 写下本文时最新版的opencsv版本为4.0, maven坐标如下: com.opencsv opencsv 4.0 测试用test.csv id,date,name ...

  2. java csv 日期_java读取excel或者csv时日期格式数据处理

    背景:最近写一个通过excel批量导入数据的功能,里面含有时间,但是java读取之后把时间转为了距离1990年1月1号的天数,比如excel中时间为2018/9/16 18:30,java读取之后变成 ...

  3. java 异步记录日志_java异步写日志到文件中实现代码

    java异步写日志到文件中详解 实现代码: package com.tydic.ESUtil; import java.io.File; import java.io.FileWriter; impo ...

  4. filewriter追加_Java FileWriter.write()追加写入数据

    首页 > 基础教程 > IO流 > Writer类 Java FileWriter.write()追加写入数据 java种FileWriter.write一般用于写入或者追加文本,字 ...

  5. python csv文件数据根据逗号分隔_Python 3读取以逗号分隔的CSV文件操作变量并写到CSV...

    我是Python的新手,并希望阅读下面列出的内容的CSV文件: DN, whenCreated, name, pwdLastSet, location "CN=Jackson2,OU=Dom ...

  6. java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  7. java 字符串原子变量,如何在java中提供原子读/写2个变量?

    在我的课堂上,我的代码如下: int counter1; int counter2; public void method1(){ if (counter1>0) { ...........do ...

  8. java webservice 服务器_java如何写webservice服务端

    展开全部 Java 中的 Web Service 分为基于 SOAP 的和基于 REST 的两种,下面简单说一个基于 SOAP 的例子.要使用 JDK6u4 之后e69da5e6ba903231313 ...

  9. java 扑克牌排序_java 怎么写compareto方法实现扑克牌排序

    展开全部 public class Card { private String face; private String suit; public String getFace() { return ...

最新文章

  1. 腾讯「AI In All」的背后,是开放AI技术能力,探索腾讯应用场景
  2. apache+tomcat​现在我们实现session共享
  3. web应用插件开发_Web应用程序的简单插件系统
  4. java1.6升级1.7_jdk从1.6升级到1.7可能会遇到的Version问题
  5. Server Installation for Jitsi Meet 2
  6. 货币代码,不允许ALE通讯
  7. 怎么提高,芝麻信用分到750
  8. Termux,安装Aria2 实现BT下载功能
  9. 阿里云是干什么用的?
  10. 如何测量两组汇编指令的执行效率
  11. wireshark 笔记
  12. (荐)跟我学SpringMVC目录汇总贴、PDF下载、源码下载
  13. influxdb学习笔记
  14. 回到20年前,我一定好好念书
  15. 10-Stapler-可执行文件提权-内核提权-les.sh-linpeas.sh
  16. 1060显卡支持dx12吗_GTX1660和GTX1060哪个性价比高?GTX1060和GTX1660显卡区别对比
  17. 工商管理专业考计算机二级,全国计算机二级科目怎么选
  18. UIReferenceLibraryViewController:App中字典词义查询的实现
  19. 中艺人脸识别考勤机使用方法_人脸识别考勤机简单使用说明
  20. YearFrac函数Java版实现(完整版)

热门文章

  1. Codeforces Round #583 E Petya and Construction (构造)
  2. 怎样做好路演PPT/keynote
  3. 视频剪辑配乐技巧 视频剪辑配音推荐
  4. 室内定位技术研发简介
  5. java绘图-绘制图片
  6. 湖南现代物流职业技术学院校历课表
  7. 从普通回溯到三色标记法法
  8. PDF文件忘记了密码如何打开文件
  9. 浅谈精准提取日志中的URL
  10. Queen Collisions(分行列模拟)