案例题目描述:
完成学生封装,保存数据到文件
根据题目要求完成
- 封装学生类Student,包含属性 学号id,姓名name,年龄age,提供带参数的构造方法(20分)
- 创建四个学生对象,把四个对象存放到List集合中。(30分)
Id:1 name:张三 age:18
Id:2 name:李四 age:19
Id:3 name:王雷 age:28
Id:4 name:李丽 age:39
- 遍历集合中所有的数据,id为偶数的打印在控制台上(20分)
- id为奇数输出到D盘的test.txt文本文件当中(20)
其他
- 要求代码每个方法都有注释。(10分)
运行结果:
package test;
public class Student {
private int id;//学号
private String name;//姓名
private int age;//年龄
public Student() {
}
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class test {
public static void main(String[] args) throws IOException {
List<Student> stu = new ArrayList<Student>();
stu.add(new Student(1, "张三", 18));
stu.add(new Student(2, "李四", 19));
stu.add(new Student(3, "王雷", 28));
stu.add(new Student(4, "李丽", 39));
//创建FileOutputStream对象,用于保存内容到文件
FileOutputStream f = new FileOutputStream("D:\\test.txt");
for (int i = 0; i < stu.size(); i++) {//判断id为偶数还是奇数
if (stu.get(i).getId() % 2 == 0) {//偶数打印到控制台
System.out.println(stu.get(i));
} else {//奇数写入到文件中
//向文件写入内容
f.write((stu.get(i).toString().getBytes()));
f.write("\r\n".getBytes());
}
}
f.close();
//创建FileInputStream对象,用于读取文件中的内容
FileInputStream f1 = new FileInputStream("D:\\test.txt");
int j = 0;
//创建一个字符串用于承接读出的内容
String str = "";
while ((j = f1.read()) != -1) {
str += (char) j;
}
f1.close();
System.out.println(str);
}
}