(1)需求:键盘流入三个学生信息(学号,姓名,年龄,居住地)存储到集合,然后遍历每一个学生信息写入文本文件(每一个学生信息为一行数据,自定义分割标记
* 分析:
* a.定义学生类
* b.创建集合对象
* c.写方法实现键盘录入学生信息,并把学生对象作为元素添加到集合
* d.创建输出缓冲流对象
* e.遍历集合,得到每一个学生信息,并把学生信息按照格式写入文本文件
* f.释放资源
*/
public class BufferedReaderTest2{
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("CoCo.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(",").append(s.getGrade());
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 grade = sc.nextLine();
//创建学生对象,用于保存键盘录入的数据
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setGrade(grade);
//将数据存入集合
array.add(s);
}
}
(2)需求:将文本中的学生信息数据读取后存储到集合,然后遍历集合,在控制台输出
/* 分析: A定义学生类
* B创建输出缓冲流对象
* C创建集合对象
* D读取数据,并将数据按一定的格式分割赋值给学生对象,然后把学生对象作为元素添加到集合
* E遍历集合
* F刷新,释放资源
* */
public class Student {
//定义一个学生类
//成员变量:学号,姓名,年龄,居住地
private String id;
private String name;
private String age;
private String grade;
//无参方法
public Student() {
}
//有参构造方法
public Student(String id, String name, String age, String grade) {
this.id = id;
this.name = name;
this.age = age;
this.grade = grade;
}
//成员方法
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 getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
public class BufferedTest3 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("CoCo.txt"));
ArrayList<Student> arr=new ArrayList<Student>();
//读取数据 一次读一行
String chs;
while((chs=br.readLine())!=null){
String[] strArray=chs.split(",");
Student s=new Student();
Student stu=new Student();
stu.setId(strArray[0]);
stu.setName(strArray[1]);
stu.setAge(strArray[2]);
stu.setGrade(strArray[3]);
arr.add(stu);
}
br.close();
System.out.println("学号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"班级");
for(int i=0;i<arr.size();i++){
Student stu=arr.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getGrade());
}
}
}