[Java] 纯文本查看 复制代码 //请使用实现:
//已知项目的根目录下有一个student.txt,内容如下:
// 1 郝婷婷 女 30
// 2 赵鹏 男 35
// 3 周强 男 38
// 4 李艳欣 女 37
// 5 朱可可 女 41
// 6 张少荣 女 30
// 7 王小军 男 28
//该文件中,每一行表示一个学生信息,从前往后依次是学号,姓名,姓名,年龄
//要求:
//1.读取文件内容,把每一个学生信息封装为一个学生对象,存储到ArrayList集合中
//2.打印集合中的学生信息
//3.计算平均年分
//4.异常处理使用throws的方式
public class Test {
public static void main(String[] args) throws IOException {
// 创建输入流对象
BufferedReader br = new BufferedReader(new FileReader("student.txt"));
// 读取信息
String line;
ArrayList<Student> list = new ArrayList<>();
while ((line = br.readLine()) != null) {
// 切割读取的信息并用String数组接收
String[] arr = line.split("\\s+");
// 将年龄字符串转为int形式
int age = Integer.parseInt(arr[3]);
// 将字符串数组信息封装到学生对象并存入集合
Student s = new Student();
s.setCode(arr[0]);
s.setName(arr[1]);
s.setSex(arr[2]);
s.setAge(age);
list.add(s);
}
// 打印学生信息
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getCode() + " " + s.getName() + " " + s.getSex() + " " + s.getAge());
}
// 打印平均年龄
int sum = 0;
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
sum += s.getAge();
}
int avg = sum / (list.size());
System.out.println("平均年龄为: " + avg);
}
}
//学生类
public class Student {
// 编号
private String code;
// 姓名
private String name;
// 性别
private String sex;
// 年龄
private int age;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(String code, String name, String sex, int age) {
super();
this.code = code;
this.name = name;
this.sex = sex;
this.age = age;
}
// get/set
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
} |