将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;
	}
}

你可能感兴趣的:(IO)