java读写csv文件,中文乱码问题
java读写csv文件,中文乱码问题
read
/**
? * 读取文件中的内容
? * @param file
? * @return
? */
?public Vector<String> readFile(File file){
??Vector<String> vector=new Vector<String>();
??
??if(file !=null && file.exists() && file.isFile() ){
???try {
????BufferedReader bufferdReader=new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
????String strTem="";
????while((strTem=bufferdReader.readLine())!=null){
?????vector.add(strTem);
????}
????log.debug("readfile:"+file);
???} catch (UnsupportedEncodingException e) {
????log.error(e.toString(),e.fillInStackTrace());
???} catch (FileNotFoundException e) {
????log.error(e.toString(),e.fillInStackTrace());
???} catch (IOException e) {
????log.error(e.toString(),e.fillInStackTrace());
???}
??}
??return vector;
?}
?
?
?
?
Write:
/**
? * 写一行数据到文件中,支持中文
? * @param file? 文件
? * @param vector 数据
? * @return
? */
?public boolean writeFile(File file,Vector<String> vector){
??? try {
???
??????? BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "GBK")) ;// 附加
??????? // 添加新的数据行
??????? for (String s :vector) {
????? ?? bw.write(s);
???????? bw.newLine();
???? }
?
??????? bw.close();
??????? log.debug("\n wirite file:"+file);
????? } catch (FileNotFoundException e) {
????? ?log.error(e.toString(),e.fillInStackTrace());
????? ?return false;
????? } catch (IOException e) {
????? ?log.error(e.toString(),e.fillInStackTrace());
????? ?return false;
????? }
???
??return true;
?}
?
--java util
?
package com.think.common.file.csv;
import java.io.File;
import java.util.Vector;
import org.apache.log4j.Logger;
import org.junit.Test;
public class CSVFileResolveTest {
?Logger log = Logger.getLogger(CSVFileResolveTest.class);
?CSVFileResolve csvFileResolve = new CSVFileResolve();
?@Test
?public void testWriteCSVFile() {
??Vector<String> vector = new Vector<String>();
??vector.add("中国百姓");
??vector.add("11");
??vector.add("22");
??csvFileResolve.writeFile("a.csv", vector);
?}
?@Test
?public void testwriteCSVFile() {
??File file = new File("c.csv");
??Vector<String> vector = new Vector<String>();
??vector.add("中国百姓");
??vector.add("11");
??vector.add("22");
??csvFileResolve.writeFile(file, vector);
?}
?@Test
?public void testreadFile() {
??File file = new File("c.csv");
??Vector<String> vector = csvFileResolve.readFile(file);
??for (String s : vector) {
???log.debug(s);
??}
?}
}