美文网首页
java035把集合中的学生信息写入文本文件

java035把集合中的学生信息写入文本文件

作者: 牛倩贱 | 来源:发表于2018-11-25 22:46 被阅读0次

    定义学生类:

    package day05;

    public class Student {

    private String id;

    private String name;

    private String age;

    private String home;

    public Student() {

    }

    public Student(String id, String name, String age, String home) {

    this.id = id;

    this.name = name;

    this.age = age;

    this.home = home;

    }

    public String getId() {

    return id;

    }

    public void setId(String id) {

    this.id = id;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getAge() {

    return age;

    }

    public void setAge(String age) {

    this.age = age;

    }

    public String getHome() {

    return home;

    }

    public void setHome(String home) {

    this.home = home;

    }

    }

    要求:键盘录入三个学生信息(学号,姓名,年龄,居住地)存储到集合,然后遍历每一个学生信息写入文本文件(每一个学生信息为一行数据,自定义分割标记

    package day05;

    import java.io.BufferedWriter;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.util.ArrayList;

    import java.util.Scanner;

    /*

    * 分析:

    * a.定义学生类

    * b.创建集合对象

    * c.写方法实现键盘录入学生信息,并把学生对象作为元素添加到集合

    * d.创建输出缓冲流对象

    * e.遍历集合,得到每一个学生信息,并把学生信息按照格式写入文本文件

    * f.释放资源

    */

    public class ArrayListToFileTest {

    public static void main(String[] args) throws IOException {

    ArrayList<Student> array = new ArrayList<Student>();

    addStudent(array);

    addStudent(array);

    addStudent(array);

    BufferedWriter bw = new BufferedWriter(new FileWriter("g.txt"));

    //遍历集合,得到每一个学生信息,并把学生信息按照格式写入文本文件

    for(int x =0;x<array.size();x++){

    Student s = array.get(x);

    //创建SringBuilder对象,用于添加元素

    StringBuilder sb = new StringBuilder();

    sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(s.getHome());

    bw.write(sb.toString());

    bw.newLine();//一定要记得写这个,系统决定换行

    bw.flush();

    }

    bw.close();

    }

    //写方法实现录入信息,并添加到集合

    public static void addStudent(ArrayList<Student> array){

    Scanner sc = new Scanner(System.in);

    String id;

    while(true){

    System.out.println("请输入学号");

    id=sc.nextLine();

    //定义标记

    boolean flag=false;

    //遍历集合看是否有学号被占用

    for(int x=0;x<array.size();x++){

    Student s = array.get(x);

    if(s.getId().equals(id)){

    flag=true;

    break;

    }

    }

    if(flag){

    System.out.println("你输入的学号错误,请重新输入");

    }else{

    break;

    }

    }

    System.out.println("请输入学生姓名:");

    String name = sc.nextLine();

    System.out.println("请输入学生年龄:");

    String age = sc.nextLine();

    System.out.println("请输入学生住址");

    String home = sc.nextLine();

    //创建学生对象,用于保存键盘录入的数据

    Student s = new Student();

    s.setId(id);

    s.setName(name);

    s.setAge(age);

    s.setHome(home);

    //将数据存入集合

    array.add(s);

    }

    }

    相关文章

      网友评论

          本文标题:java035把集合中的学生信息写入文本文件

          本文链接:https://www.haomeiwen.com/subject/shkuqqtx.html