码迷,mamicode.com
首页 > 其他好文 > 详细

练习:读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中.

时间:2016-05-06 21:59:48      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:

/**
 *    读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中.
 *    1, 土鳖, 13101015338, 北京海淀区
    2, 咪咪, 13201015338, 北京朝阳区
    3, 小仓, 13601015818, 北京宣武区
    4, 饭岛爱, 13201025818, 北京朝阳区
 
技术分享
/**
 *    读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中.
 *    1, 土鳖, 13101015338, 北京海淀区
    2, 咪咪, 13201015338, 北京朝阳区
    3, 小仓, 13601015818, 北京宣武区
    4, 饭岛爱, 13201025818, 北京朝阳区
    思路:
    1.读取解析CSV文件,首先想到用BufferedReader高级流中的readLine方法.读取每一行文字.
    2.BufferedReader依赖于转换流ISR和节点流FIS,因为是从文件读取一行文字,所以低级节点流为FileInputStream(file).
    3.建立完流,用循环来使BufferedReader的readLine方法读取一行文字.因为readLine方法,一次读一行,读到末尾即返回null,
    所以可以根据返回值的特点,用while,直到为null即停止循环.这样就可以读出文件里全部的语句
    4.关键点: 1, 土鳖, 13101015338, 北京海淀区  读取到一行,这样的文字,可以用String类的split的方法分割逗号及空白.
    分别获取一行的4个短字符串,再利用Teacher(String id,String name,String tel,String address)的构造方法,创建出1个Teacher对象.    
    循环,创建出4个对象.(这里可以用集合或者数组的容器存储对象).
 */
public class ReadCsv {

    public static void main(String[] args) {

        /*建立文件夹及文件对象*/
        File dir = new File("."+File.separator+"src"+File.separator+"practise"+File.separator+"io");
        if(!dir.exists()){
            dir.mkdir();
        }
        File file = new File(dir,"list2.csv");

        /*创建一个方法,可以获取老师信息并存入Teacher对象的方法*/
        List<Teacher> list = getCsvList(file);
        /*输出老师集合*/
        System.out.println(list);
        /*输出第三个老师对象*/
        System.out.println(list.get(2));
    }

    public static List<Teacher> getCsvList(File file) {
        /*BufferedReader读取文件*/
        BufferedReader in = null;
        try {
            in = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream(file))));
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到");
            e.printStackTrace();
        }

        /*循环读取*/
        ArrayList<Teacher> list = new ArrayList<Teacher>();
        /*字符串变量*/
        String line = null;
        String[] strs = null;
        try {
            while( (line=in.readLine())!= null){
                /*关键点: 分割得到4个元素的方法*/
                strs = line.split(",\\s");
                /*关键点: 把4个元素赋值给Teacher构造方法*/
                list.add(new Teacher(strs[0],strs[1],strs[2],strs[3]));
                /*输出显示strs字符串数组显示每次循环readLine读取结果.*/
                System.out.println(Arrays.toString(strs));
            }
        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            try {/*关闭资源*/
                if(in != null)
                    in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return list;
    }

}
View Code

 

练习:读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中.

标签:

原文地址:http://www.cnblogs.com/zyjcxc/p/5467139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!