306 集合到文件改进版
【需求】
把ArrayList集合里的学生对象数据写入到,文本文件。
【要求】
每一个学生对象元素对应文件里的一行
【思路】
- 定义学生类
- 创建AL集合
- 创建学生对象
- 添加 学生对象 到 集合
- 创建 字符缓冲输出流 对象
- 遍历集合,得到每一个学生对象数据
- 把学生对象的数据拼接成指定格式的字符串:“学号,姓名,年龄,住址”【】
- 调用输出流对象的方法 写数据
- 释放资源
--------------------------------------------------------------
package e306;
public class Student306 {
private String id;
private String name;
private int age;
private String address;
public Student306() { }
public Student306(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
//下略,setter and getter
}
--------------------------------------------------------------
package e306;
/*
1. 定义学生类
2. 创建AL集合
3. 创建学生对象
4. 添加 学生对象 到 集合
5. 创建 字符缓冲输出流 对象
6. 遍历集合,得到每一个学生对象数据
7. 把学生对象的数据拼接成指定格式的字符串:“学号,姓名,年龄,住址”
8. 调用输出流对象的方法 写数据
9. 释放资源
*/import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class ExportStudentFileDemo {
public static void main(String[] args) throws IOException {
ArrayList<Student306> al306 = new ArrayList<>();
Student306 s1 = new Student306("s001", "MOLE", 21, "UG");
Student306 s2 = new Student306("s002", "RABBIT", 42, "HOLE");
Student306 s3 = new Student306("s003", "RAT", 20, "RB");
al306.add(s1);
al306.add(s2);
al306.add(s3);
BufferedWriter bw306 = new BufferedWriter(new FileWriter("myCharStream\\src\\e306\\StudentFile.txt"));
//遍历集合,忘了,需要看视频写
for (Student306 s : al306) {
//拼接字符串,用StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress());
//sb是StringBuilder对象,用toString方法把这个对象转换成字符串
bw306.write(sb.toString());
bw306.newLine();
bw306.flush();
}
bw306.close();
}
}
--------------------------------------------------------------
(StudentFile.txt)
s001,MOLE,21,UG
s002,RABBIT,42,HOLE
s003,RAT,20,RB