csv文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。

csv数据文件的应用,相对于XML来说一目了然,比较适合大量数据的存储及浏览,并且也可以快捷的将数据插入到数据库或者将数据库中的数据插入到csv文件中,方便简介效率。

1、Java对scv文件的访问操作

首先我们在csv文件中写入一些数据

csv解析成java对象 java解析csv文件内容_csv解析成java对象

然后我们创建Java文件,输入以下代码(获取路径下的文件,循环遍历)

//第一步:先获取csv文件的路径,通过BufferedReader类去读该路径中的文件
File csv = new File("G:\\FileSave\\dataFile\\read.csv");

try{
    //第二步:从字符输入流读取文本,缓冲各个字符,从而实现字符、数组和行(文本的行数通过回车符来进行判定)的高效读取。
    BufferedReader textFile = new BufferedReader(new FileReader(csv));
    String lineDta = "";

    //第三步:将文档的下一行数据赋值给lineData,并判断是否为空,若不为空则输出
    while ((lineDta = textFile.readLine()) != null){
        System.out.println(lineDta);
    }

    writeText.close();
}catch (FileNotFoundException e){
    System.out.println("没有找到指定文件");
}catch (IOException e){
    System.out.println("文件读写出错")
}

运行Java代码,查看控制台输出的结果,发现数据被正常访问并输出

csv解析成java对象 java解析csv文件内容_JAVA_02

 

2、Java对scv文件的写入操作

public class text {
    public static void main(String[] args) throws Exception {
        //第一步:设置输出的文件路径
        //如果该目录下不存在该文件,则文件会被创建到指定目录下。如果该目录有同名文件,那么该文件将被覆盖。
        File writeFile = new File("G:\\FileSave\\dataFile\\write.csv");

        try{
            //第二步:通过BufferedReader类创建一个使用默认大小输出缓冲区的缓冲字符输出流
            BufferedWriter writeText = new BufferedWriter(new FileWriter(writeFile));

            //第三步:将文档的下一行数据赋值给lineData,并判断是否为空,若不为空则输出
            for(int i=1;i<=10;i++){
                writeText.newLine();    //换行
                //调用write的方法将字符串写到流中
                writeText.write("新用户"+i+",男,"+(18+i));
            }

            //使用缓冲区的刷新方法将数据刷到目的地中
            writeText.flush();
            //关闭缓冲区,缓冲区没有调用系统底层资源,真正调用底层资源的是FileWriter对象,缓冲区仅仅是一个提高效率的作用
            //因此,此处的close()方法关闭的是被缓存的流对象
            writeText.close();
        }catch (FileNotFoundException e){
            System.out.println("没有找到指定文件");
        }catch (IOException e){
            System.out.println("文件读写出错");
        }
    }
}

我指定了10次循环分别将数据插入到了指定的输出文件中,主要代码如下

for(int i=1;i<=10;i++){
    writeText.newLine();
    writeText.write("新用户"+i+",男,"+(18+i));
}

运行Java程序,然后打开csv文件,发现成功的将数据插入

csv解析成java对象 java解析csv文件内容_IO_03

 

3、Java scv文件访问指定行数的列数

       待补充(思路:下标访问、分割逗号(,)获取数值数组,遍历访问)......

 

 

       注意:如果你的机器上装了 Microsoft Excel的话,.csv 文件默认是被Excel打开的。需要注意的是,当你双击一个.CSV 文件,Excel 打开它以后即使不做任何的修改,在关闭的时候 Excel 往往会提示是否要改成正确的文件格式,这个时候如果选择“是”,因为 Excel 认为.CSV 文件中的数字是要用科学记数法来表示的,Excel 会把 CSV 文件中所有的数字用科学计数来表示(2.54932E+5 这种形式),这样操作之后,只是在 Excel 中显示的时候会不正常,而 csv 文件由于是纯文本文件,在使用上没有影响;如果选择了“否”,那么会提示你以 xls 格式另存为 Excel 的一个副本。

建议把.CSV 的默认打开方式改成任意一个文本编辑器,系统自带的记事本就是个不错的选择。