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