java读取csv文件,把内容写成别的文件

我尽量搞一些通俗易懂一点。

把任务拆解,其中读写的部分用try-catch包住,前面讲细节,完整代码放在最后

java读取csv文件,把内容写成别的文件_第1张图片

1. csv有自己的编码方式,我们用下面三行代码读入(记得try-catch呀!)

String csvFile="C:\\Users\\芮嘉\\abc.csv";
//路径复制时反斜杠需要两个,如果没有自动复制就手动添加,否则单个"\"是转义符,会报错
DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFile)));
BufferedReader br= new BufferedReader(new InputStreamReader(in,"GBK"));
//是UTF-8还是GBK可以自己试一下,我的用UTF-8搞出来还是乱码,就用的GBK

2. 处理数据,定义分隔符,接数据的字符串,装分隔好的字符串数组,然后用循环顺序读出处理。

String csvSplitBy=",";
String line="";
while ((line = br.readLine()) != null) {//在条件中已经把数据读出
    String[] attribute = line.split(csvSplitBy);//把读出的字符串用逗号分隔开,装入数组
    if(attribute.length==0)break;

    /*

    具体的处理,例如写入txt,或者整合数据,或者写去sql,都行

    */
}

最后放上完整的代码

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

public class Totxt {
	static String csvFile="C:\\Users\\芮嘉\\abc.csv";
	static String csvSplitBy=",";
	public static void main(String[] args) {
		try { 
			/*读入csv文件*/
			DataInputStream in = new DataInputStream(new FileInputStream(new File(csvFile)));
			BufferedReader br= new BufferedReader(new InputStreamReader(in,"GBK"));
			String line="";
//要是有表头可以在while循环前读一行,分隔后放到数组,在之后使用。循环会自动从下一行开始读。
            while ((line = br.readLine()) != null) {
            	// 按行读取逗号分隔
                String[] attribute = line.split(csvSplitBy);
                if(attribute.length==0)break;
                
            /*写入txt文件*/
                String storePath="C:\\Users\\芮嘉"+attribute[0]+".txt";
                File writeProperties=new File(storePath);
                BufferedWriter out =new BufferedWriter(new FileWriter(writeProperties));
                for(int i=1;i

你可能感兴趣的:(java,后端,csv)