java 对CSV 文件的读取与生成
Posted gdhzdbh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 对CSV 文件的读取与生成相关的知识,希望对你有一定的参考价值。
CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开。CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CSV文件的读取与生成其实很简单,只要读取的时候用(,)进行切割就可以获得相应的列元素,在生成的时候不同的列元素之间加上(,)
demo如下:
//读取CSV文件 public void readCsvFile(String fileName) throws IOException { BufferedReader bufferedReader=null; try{ bufferedReader=new BufferedReader(new FileReader(fileName)); String line=null; while(null!=(line=bufferedReader.readLine())){ String[] lines = line.split(","); logger.info("这就是文件的内容"+ Arrays.toString(lines)); } }catch (IOException e){ throw new IOException(e); }finally { if(bufferedReader!=null){ try { bufferedReader.close(); } catch (IOException e) { logger.error("输入流关流出现异常",e); } } } }
//生产CSV文件
public static void writerCsvFile(String fileName, List<String[]> list) throws IOException {
BufferedWriter bufferedWriter=null;
try{
bufferedWriter= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName),"GBK"));
for (String[] s:list) {
for (int i=0;i<s.length;i++){
bufferedWriter.write(s[i]);
bufferedWriter.write(",");
}
bufferedWriter.newLine();//记得换行
}
}catch (IOException e){
throw new IOException(e);
}finally {
if(bufferedWriter!=null){
try {
bufferedWriter.close();
} catch (IOException e2) {
logger.error("输出流关流出现异常",e2);
}
}
}
}
值得注意的是:在进行生成CSV文件的时候,对于长的数字组成的字符串的写入,CSV会自动进行数字化转换,即科学计数法,对于要不要处理,还是根据需求来定
如果是想直观的双击打开就不要进行转换的话,就要在写入的时候,告诉CSV,我不是写的数字,可以进行再写的时候拼接 ,;等信息
如果生成的CSV文件,也是使用的输入流进行读取的话,不用做处理,会自动进行识别,因为这个是CSV文件的格式
以上是关于java 对CSV 文件的读取与生成的主要内容,如果未能解决你的问题,请参考以下文章