/*读取学生信息文本,每行数据如 张三,男,3班 每行信息姓名,性别,班级 读取文本,并将所有女生信息存储至集合中
定义集合ArrayList,存储学生对象(学生对象三个属性,姓名,性别,班级)
以行的方式读取文本文件,每行进行逗号切割,判断数组的1索引是不是女,如果是就存储到集合中*/
public static void main(String[] args) throws IOException {
ArrayList<Student> alStu = new ArrayList<>();
//调用readArrayList(),返回一个新的集合
alStu= readArrayList(alStu);
//调用eachArrayListPrint方法传入一个集合,遍历已即打印
eachArrayListPrint(alStu);
}
//定义一个方法,传入一个集合,遍历并打印
private static void eachArrayListPrint(ArrayList<Student> alStu) {
for (int i = 0; i < alStu.size(); i++) {//这里可以变变试试
StringBuilder sb =new StringBuilder();//放for里和外试试
Student stu = alStu.get(i);
sb.append("姓名:").append(stu.getName()).append(" ,性别:").append(stu.getGender()).append(" ,班级名称:").append(stu.getClassName());
System.out.println(sb);//这里也可以放里和外试试
}
}
//定义一个方法,从文本中读取内容并添加到集合中.返回值添加好的集合,参数是空的集合
private static ArrayList<Student> readArrayList(ArrayList<Student> alStu) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("StudentInfo.txt"));
String line;
while((line = br.readLine())!=null){
String[] newStr = line.split(",");
String name = newStr[0];
String gender = newStr[1];
String className = newStr[2];
Student stu = new Student(name, gender, className);
if("女".equals(gender)){
alStu.add(stu);
}else{
continue;
}
}
br.close();
return alStu;
}