一个CSV文件操作类,功能比较齐全:

package tool;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
//参考 http://wenku.baidu.com/view/dfc319c689eb172ded63b7ee.html
public class CsvUtil {
private String fileName=null;
private BufferedReader bufferedReader=null;
private Vector v=new Vector(); public CsvUtil(String filename) throws IOException
{
this.fileName=filename;
bufferedReader=new BufferedReader(new FileReader(fileName));
String stemp;
while((stemp=bufferedReader.readLine())!=null)
{
if(!stemp.startsWith("#"))//以#开头表示注释
v.add(stemp); } }
public Vector getVector()
{
return v;
}
//得到CSV的行数
public int getRowCount()
{
return v.size();
} //取得指定行 public String getRow(int index)
{
if(this.getRowCount()==0)
return null;
return (String)v.get(index);
}
//取得指定列
public String getColumn(int index)
{
if(this.getColumnCount()==0)
{
return null;
}
StringBuffer scol=new StringBuffer();
String temp=null;
int column=this.getColumnCount();
if(column>=1)
{
for(Iterator it=v.iterator();it.hasNext();)
{
temp=it.next().toString();
scol=scol.append(temp.split(",")[index]+","); }
} String str=new String(scol.toString());
str=str.substring(0,str.length()-1);
return str; }
//得到列数
public int getColumnCount()
{
if(!v.toString().equals("[]"))
{
if(v.get(0).toString().contains(","))
{
return v.get(0).toString().split(",").length;
}
else if(v.get(0).toString().trim().length()!=0)
{
return 1;
}
else
{
return 0;
} }
else
{
return 0; } } //取得指定行,指定列的值
public String getValueAt(int row,int col)
{
String temp=null;
int column=this.getColumnCount();
if(column>=1)
{
temp=v.get(row).toString().split(",")[col];
} else
{
temp=null;
}
return temp; } public void insertRow(Vector v) throws IOException
{
//当前的vector增加
// this.v.add错误 BufferedWriter bw=new BufferedWriter(new FileWriter(this.fileName,true));//一定要接true,表示追加
StringBuffer temp=new StringBuffer();
Iterator it=v.iterator();
temp.append(it.next().toString());
if(v.size()>1)
{
while(it.hasNext())
{
temp.append(","+it.next().toString());
}
}
bw.write(temp.toString());
bw.newLine();
bw.flush();
bw.close(); }
public void deleteRow(int index) throws IOException
{
v.remove(index); BufferedWriter bw=new BufferedWriter(new FileWriter(this.fileName));
for(Iterator it=v.iterator();it.hasNext();)
{
bw.write(it.next().toString());
bw.newLine();//一定要有 }
bw.flush();
bw.close(); } public void printAll()
{
Iterator it=v.iterator();
while(it.hasNext())
{
System.out.println(it.next().toString());
}
} public void CsvClose() throws IOException
{
this.bufferedReader.close();
} public static void main(String[] args) throws IOException
{
CsvUtil cu=new CsvUtil("data/user.txt");
/*
String s11=cu.getValueAt(1, 1);
System.out.println(s11);
String arr1=cu.getRowCount(0);
System.out.println(arr1);
System.out.println(cu.getColumn(0));
*/
Vector v=new Vector();
v.add("user5");
v.add("pwd5");
cu.insertRow(v);
//cu.deleteRow(2);
cu.printAll(); }
}

java csv 文件 操作类的更多相关文章

  1. java的文件操作类File

    java.io.File类,是java获取文件/文件夹的所有属性,和完成所有相关操作的类 例子: package test.file.IO; import java.io.*; public clas ...

  2. java FileUtil(文件操作类)

    package tools; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; i ...

  3. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  4. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

  5. 一个封装好的CSV文件操作C#类代码

    using System.Data; using System.IO; namespace DotNet.Utilities { /// <summary> /// CSV文件转换类 // ...

  6. C# 文件操作类大全

      C# 文件操作类大全 时间:2015-01-31 16:04:20      阅读:1724      评论:0      收藏:0      [点我收藏+] 标签: 1.创建文件夹 //usin ...

  7. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  8. java中文件操作《一》

    在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.Fi ...

  9. 【转载】 C#工具类:Csv文件转换类

    CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...

随机推荐

  1. <转>机器学习笔记之奇异值分解的几何解释与简单应用

    看到的一篇比较好的关于SVD几何解释与简单应用的文章,其实是有中文译本的,但是翻译的太烂,还不如直接看英文原文的.课本上学的往往是知其然不知其所以然,希望这篇文能为所有初学svd的童鞋提供些直观的认识 ...

  2. sql server把一个表中数据复制到另一个表

    insert into A(ID,Name,Sex,Address,DID,...) from (select ID,Name,Sex,Address, 5 DID)

  3. Unity StrangeIoc框架 (二)

    MVCSContex :the big picture 1.应用程序的入口是一个类成为ContextView,这是一个Monobehavior实例化MVCSContext 2.用MVCSContext ...

  4. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

    Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...

  5. IO之读入文件

    整个java.io包中最重要的就是5个类和一个接口,5个类指的是File,OutputStream,InputStream,Reader,Writer:一个接口是Serializable. 在整个io ...

  6. android双击返回键退出程序

    今天给大家简单说一下,android双击返回键退出程序. @Override public boolean onKeyDown(int keyCode, KeyEvent event) {      ...

  7. 替换bmp图片中的颜色 good

    工作中,经常需要将bmp图片中的某个颜色修改为另外一种颜色.比如:将图片中的所有白色均修改成灰色. 平时都是拿画图板中的油漆桶工具一点一点的刷,费时又费力.(这么干好几年了 :( ) 今天抽空编了一个 ...

  8. mysql远程登录权限

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; FLUSH PRIVILEGES;

  9. 转:trie树--详解

    前几天学习了并查集和trie树,这里总结一下trie. 本文讨论一棵最简单的trie树,基于英文26个字母组成的字符串,讨论插入字符串.判断前缀是否存在.查找字符串等基本操作:至于trie树的删除单个 ...

  10. ExpandableListView(一)替换系统默认的箭头

    很多朋友可能在android开发中,用过ExpandableListView这个组件,这个组件功能强大,比传统的ListView有好多优势.然而在开发中,我相信有好多人,包括我个人都会遇到下面的一些问 ...