java csv 追加_java读、写、追加CSV
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相关推荐
- java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题
参考资料: opencsv文档 写下本文时最新版的opencsv版本为4.0, maven坐标如下: com.opencsv opencsv 4.0 测试用test.csv id,date,name ...
- java csv 日期_java读取excel或者csv时日期格式数据处理
背景:最近写一个通过excel批量导入数据的功能,里面含有时间,但是java读取之后把时间转为了距离1990年1月1号的天数,比如excel中时间为2018/9/16 18:30,java读取之后变成 ...
- java 异步记录日志_java异步写日志到文件中实现代码
java异步写日志到文件中详解 实现代码: package com.tydic.ESUtil; import java.io.File; import java.io.FileWriter; impo ...
- filewriter追加_Java FileWriter.write()追加写入数据
首页 > 基础教程 > IO流 > Writer类 Java FileWriter.write()追加写入数据 java种FileWriter.write一般用于写入或者追加文本,字 ...
- python csv文件数据根据逗号分隔_Python 3读取以逗号分隔的CSV文件操作变量并写到CSV...
我是Python的新手,并希望阅读下面列出的内容的CSV文件: DN, whenCreated, name, pwdLastSet, location "CN=Jackson2,OU=Dom ...
- java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...
- java 字符串原子变量,如何在java中提供原子读/写2个变量?
在我的课堂上,我的代码如下: int counter1; int counter2; public void method1(){ if (counter1>0) { ...........do ...
- java webservice 服务器_java如何写webservice服务端
展开全部 Java 中的 Web Service 分为基于 SOAP 的和基于 REST 的两种,下面简单说一个基于 SOAP 的例子.要使用 JDK6u4 之后e69da5e6ba903231313 ...
- java 扑克牌排序_java 怎么写compareto方法实现扑克牌排序
展开全部 public class Card { private String face; private String suit; public String getFace() { return ...
最新文章
- 腾讯「AI In All」的背后,是开放AI技术能力,探索腾讯应用场景
- apache+tomcat​现在我们实现session共享
- web应用插件开发_Web应用程序的简单插件系统
- java1.6升级1.7_jdk从1.6升级到1.7可能会遇到的Version问题
- Server Installation for Jitsi Meet 2
- 货币代码,不允许ALE通讯
- 怎么提高,芝麻信用分到750
- Termux,安装Aria2 实现BT下载功能
- 阿里云是干什么用的?
- 如何测量两组汇编指令的执行效率
- wireshark 笔记
- (荐)跟我学SpringMVC目录汇总贴、PDF下载、源码下载
- influxdb学习笔记
- 回到20年前,我一定好好念书
- 10-Stapler-可执行文件提权-内核提权-les.sh-linpeas.sh
- 1060显卡支持dx12吗_GTX1660和GTX1060哪个性价比高?GTX1060和GTX1660显卡区别对比
- 工商管理专业考计算机二级,全国计算机二级科目怎么选
- UIReferenceLibraryViewController:App中字典词义查询的实现
- 中艺人脸识别考勤机使用方法_人脸识别考勤机简单使用说明
- YearFrac函数Java版实现(完整版)