java 操作csv文件
2012-02-29 12:33
190 查看
public class CSVUtil {
private LinkedList<LinkedList<String>> m_rowList = new LinkedList<LinkedList<String>>();
private String m_fileName = null;
public CSVUtil(){
}
public boolean readCSV(String fileName){
if(fileName.isEmpty()){
return false;
}
try {
File file = new File(fileName);
InputStreamReader freader = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader reader = new BufferedReader(freader);
String rowValues = reader.readLine();
while(rowValues != null){
String[] tokens = rowValues.split(",");
LinkedList<String> row = new LinkedList<String>();
for(String cell:tokens){
row.addLast(cell);
}
m_rowList.addLast(row);
rowValues = reader.readLine();
}
reader.close();
m_fileName = fileName;
return true;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public boolean saveAsCSV(String fileName){
if(m_rowList.isEmpty() || fileName.isEmpty()){
return false;
}
if(fileName.indexOf(".") == -1){
fileName += ".csv";
}
if(!fileName.endsWith(".csv")){
int endIndex = fileName.indexOf('.');
fileName = fileName.substring(0, endIndex);
fileName += ".csv";
}
try {
File file = new File(fileName);
//先检查要存储的文件是否存在,如果存在直接删除
if(file.exists()){
file.delete();
}
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
StringBuilder sb = new StringBuilder();
for(LinkedList<String> row:m_rowList){
for(int i=0;i<row.size()-1;i++){
sb.append(row.get(i));
sb.append(',');
}
sb.append(row.get(row.size()-1));
sb.append("\r\n");
}
writer.write(sb.toString());
writer.close();
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public String getCell(int row,int colum){
if(row >= m_rowList.size() || row < 0){
throw new IndexOutOfBoundsException(String.valueOf(row));
}else{
LinkedList<String> rowValues = m_rowList.get(row);
if(colum<0 || colum >= rowValues.size()){
throw new IndexOutOfBoundsException(String.valueOf(colum));
}else{
return rowValues.get(colum);
}
}
}
public boolean insertRow(int row,String[] values){
if(row<0 ||row>m_rowList.size()){
throw new IndexOutOfBoundsException(String.valueOf(row));
}
if(values == null){
throw new NullPointerException();
}
LinkedList<String> rowValues = new LinkedList<String>();
for(String cell:values){
rowValues.addLast(cell);
}
m_rowList.add(row, rowValues);
return true;
}
public boolean insertCell(int row,int colum,String value){
if(row<0 ||row>m_rowList.size()){
throw new IndexOutOfBoundsException(String.valueOf(row));
}
LinkedList<String> rowValues = m_rowList.get(row);
if(colum<0 || colum >= rowValues.size()){
throw new IndexOutOfBoundsException(String.valueOf(colum));
}
rowValues.add(colum, value);
return true;
}
public boolean save(){
return saveAsCSV(m_fileName);
}
public int getMaxRow(){
return m_rowList.size();
}
}
private LinkedList<LinkedList<String>> m_rowList = new LinkedList<LinkedList<String>>();
private String m_fileName = null;
public CSVUtil(){
}
public boolean readCSV(String fileName){
if(fileName.isEmpty()){
return false;
}
try {
File file = new File(fileName);
InputStreamReader freader = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader reader = new BufferedReader(freader);
String rowValues = reader.readLine();
while(rowValues != null){
String[] tokens = rowValues.split(",");
LinkedList<String> row = new LinkedList<String>();
for(String cell:tokens){
row.addLast(cell);
}
m_rowList.addLast(row);
rowValues = reader.readLine();
}
reader.close();
m_fileName = fileName;
return true;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public boolean saveAsCSV(String fileName){
if(m_rowList.isEmpty() || fileName.isEmpty()){
return false;
}
if(fileName.indexOf(".") == -1){
fileName += ".csv";
}
if(!fileName.endsWith(".csv")){
int endIndex = fileName.indexOf('.');
fileName = fileName.substring(0, endIndex);
fileName += ".csv";
}
try {
File file = new File(fileName);
//先检查要存储的文件是否存在,如果存在直接删除
if(file.exists()){
file.delete();
}
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
StringBuilder sb = new StringBuilder();
for(LinkedList<String> row:m_rowList){
for(int i=0;i<row.size()-1;i++){
sb.append(row.get(i));
sb.append(',');
}
sb.append(row.get(row.size()-1));
sb.append("\r\n");
}
writer.write(sb.toString());
writer.close();
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public String getCell(int row,int colum){
if(row >= m_rowList.size() || row < 0){
throw new IndexOutOfBoundsException(String.valueOf(row));
}else{
LinkedList<String> rowValues = m_rowList.get(row);
if(colum<0 || colum >= rowValues.size()){
throw new IndexOutOfBoundsException(String.valueOf(colum));
}else{
return rowValues.get(colum);
}
}
}
public boolean insertRow(int row,String[] values){
if(row<0 ||row>m_rowList.size()){
throw new IndexOutOfBoundsException(String.valueOf(row));
}
if(values == null){
throw new NullPointerException();
}
LinkedList<String> rowValues = new LinkedList<String>();
for(String cell:values){
rowValues.addLast(cell);
}
m_rowList.add(row, rowValues);
return true;
}
public boolean insertCell(int row,int colum,String value){
if(row<0 ||row>m_rowList.size()){
throw new IndexOutOfBoundsException(String.valueOf(row));
}
LinkedList<String> rowValues = m_rowList.get(row);
if(colum<0 || colum >= rowValues.size()){
throw new IndexOutOfBoundsException(String.valueOf(colum));
}
rowValues.add(colum, value);
return true;
}
public boolean save(){
return saveAsCSV(m_fileName);
}
public int getMaxRow(){
return m_rowList.size();
}
}
相关文章推荐
- 使用Java操作CSV文件 .
- java操作csv文件(读、写)
- 滴水穿石--Java 操作CSV文件
- Java操作Excel文件以及将xls/xlsx转为csv文件
- java操作csv文件
- java操作csv文件
- java操作csv文件之javacsv.jar应用
- Java实现CSV格式文件的读写(操作API)
- JAVA操作csv文件(导入导出)
- 用javacsv API 来操作csv文件
- JAVA学习提高之----JAVA开源项目之操作csv文件
- 以CSV文件导入MySQL的批量数据插入操作之Java操作
- 使用Java操作CSV文件
- 用javacsv API 来操作csv文件
- java操作csv文件
- 使用Java操作CSV文件
- java操作csv文件
- java使用CsvReader和CsvWriter对csv文件内容进行读取和写入操作
- 使用Java操作CSV文件
- 使用Javacsv.jar的jar包操作csv文件的方法