将CSV文件转换为TXT文件

主要思想就是使用BufferedReader从CSV文件读取每一行数据,再使用BufferedWriter向TXT文件中写入数据。最需要注意的就是乱码的处理。
使用这种方式可以避免乱码。

DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFileName)));
BufferedReader br = new BufferedReader(new InputStreamReader(in,encoding));




package com.openjaw.Utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.log4j.Logger;

/**
* @author yc
*
*/
public class FileConverterUtils {

private static Logger log = Logger.getLogger(FileConverterUtils.class);

/**
* 将csv文件转换为txt文件
* @param csvFileName 被转换的csv文件
* @param txtFileName 转换后的txt文件,若txt文件不存在,则该方法会按照路径新建txt文件,转换后返回该文件
* @param encoding CSV文件的编码
* @return 若传入的csvFileName名或者txtFileName名为空或“”,则返回空
* @throws IOException
*/
public static File CsvConversionToTxt(String csvFileName, String txtFileName,String encoding) throws IOException{
if( !StringUtil.isNotNull(csvFileName) || !StringUtil.isNotNull(txtFileName) ){
return null;
}
BufferedReader br = null;
BufferedWriter bw = null;
File txtFile = new File(txtFileName);
if( !txtFile.isFile() ){
txtFile.createNewFile();
}
try{
DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFileName)));
br = new BufferedReader(new InputStreamReader(in,encoding));
bw = new BufferedWriter(new FileWriter(txtFileName));
String stemp;
while ((stemp = br.readLine()) != null) {
bw.write(stemp);
bw.newLine();
}
}catch(IOException e){
e.printStackTrace();
log.error(e.getMessage());
}finally{
if(br != null){
br.close();
}
if(bw != null){
bw.flush();
bw.close();
}
}
return txtFile;
}
}

发布了25 篇原创文章 · 获赞 0 · 访问量 5093

猜你喜欢

转载自blog.csdn.net/ycde2009/article/details/84618930