String类、Date、IO综合练习

将文件中数据,读取到内存中,封装到Student类里面进行下一步操作。

分为以下步骤:

1.定义File对象,关联映射磁盘文件

File f1=new File("D:/a.txt");

2.定义缓冲字符流,方便读取文档中的内容。

FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);

文档中的内容 

 

3.解析每一行的数据,

String temp=br.readLine();

           读取出的第一行数据是 :张三-男-2000/08/15-河南南阳

需要把数据封装到student对象中 ,因此要对读取到的字符串用split按照-进行拆分,拆分为姓名,性别,生日,地址四个属性,然后进行封装。

综合案例:

属性行为构造方法:

package Eight;

import java.util.Date;

public class Student {
    private String name;
    private String sex;
    private Date brithday;
    private String address;

    public Student() {
    }

    public Student(String name, String sex, Date brithday, String address) {
        this.name = name;
        this.sex = sex;
        this.brithday = brithday;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Date getBrithday() {
        return brithday;
    }

    public void setBrithday(Date brithday) {
        this.brithday = brithday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", brithday=" + brithday +
                ", address='" + address + '\'' +
                '}';
    }
}

 代码:

package Eight;

import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;

public class Test01 {
    public static void main(String[] args) throws IOException, ParseException {
        //1.定义File对象,关联映射磁盘文件
        File f1=new File("D:/a.txt");
        //2.定义缓冲字符流
        FileReader fr = new FileReader(f1);
        BufferedReader br = new BufferedReader(fr);
        //3.对文档进行读取,每次读取一行数据
        ArrayList<Student> list=new ArrayList<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

        String temp;
        while (true){
            temp=br.readLine();//读取一行数据
            if(temp!=null){
                //System.out.println(temp);  //张三-男-2000/08/15-河南南阳
                String[] split=temp.split("-");
              //  System.out.println(Arrays.toString(split));
                //解析每一行的数据,把数据封装到student对象中
                Student student=new Student();
                student.setName(split[0]);
                student.setSex(split[1]);
                student.setBrithday(sdf.parse(split[2]));//取出数组中第三个元素,是一个日期字符串,给他转化为对应的日期
                student.setAddress(split[3]);


                list.add(student);
            }else {
                break;
            }
        }
        System.out.println(list);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值