用java 定义一个学生类Student,包含属性name, age, id,性别,创高跑步公里数distance。设置每个属性的getter/setter方法 定义一个班级类,包含属性班级名称,学院等属性,班级的所有学生都存储在里面(49人)。 -把班级班级成员写入要- -个tbxt文件中, 每个学生占一行,每个属性逗号分割 例如: 姓名:张三,学号:111... 姓名:李四,学号:112... -从txt文件重新读取然后把班级成员写入要- 个csv文件中(Excel)
时间: 2024-03-17 19:45:47 浏览: 80
好的,我来逐步回答您的问题。
首先,我们可以定义一个 `Student` 类,代码如下:
```java
public class Student {
private String name;
private int age;
private String id;
private String gender;
private double distance;
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;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public double getDistance() {
return distance;
}
public void setDistance(double distance) {
this.distance = distance;
}
}
```
上面的代码中,我们定义了一个 `Student` 类,包含了五个属性:`name`、`age`、`id`、`gender` 和 `distance`,以及对应的 getter 和 setter 方法。
接下来,我们可以定义一个 `Class` 类,用于存储班级信息和学生信息:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Class {
private String name;
private String college;
private List<Student> students;
public Class(String name, String college) {
this.name = name;
this.college = college;
this.students = new ArrayList<>();
}
public void addStudent(Student student) {
this.students.add(student);
}
public void writeToFile(String fileName) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
for (Student student : students) {
writer.write(String.format("姓名:%s,年龄:%d,学号:%s,性别:%s,跑步公里数:%.2f\n",
student.getName(), student.getAge(), student.getId(), student.getGender(), student.getDistance()));
}
writer.close();
}
public void readFromFile(String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(",");
Student student = new Student();
for (String part : parts) {
String[] kv = part.split(":");
String key = kv[0];
String value = kv[1];
switch (key) {
case "姓名":
student.setName(value);
break;
case "年龄":
student.setAge(Integer.parseInt(value));
break;
case "学号":
student.setId(value);
break;
case "性别":
student.setGender(value);
break;
case "跑步公里数":
student.setDistance(Double.parseDouble(value));
break;
}
}
addStudent(student);
}
reader.close();
}
}
```
上面的代码中,我们定义了一个 `Class` 类,包含了三个属性:`name`、`college` 和 `students`,以及对应的构造方法、添加学生方法、将班级成员写入 txt 文件方法和从 txt 文件读取班级成员方法。
在 `writeToFile` 方法中,我们将每个学生对象的属性转换为一行文本,并写入到指定的文件中。
在 `readFromFile` 方法中,我们从指定的文件中读取每一行文本,并将其转换为一个 `Student` 对象。
最后,我们可以编写一个测试类,用于创建班级对象、添加学生对象、将班级成员写入 txt 文件和从 txt 文件读取班级成员:
```java
public class Test {
public static void main(String[] args) throws IOException {
Class cls = new Class("CS101", "Computer Science");
cls.addStudent(new Student() {{
setName("张三");
setAge(20);
setId("101");
setGender("男");
setDistance(10.5);
}});
cls.addStudent(new Student() {{
setName("李四");
setAge(21);
setId("102");
setGender("女");
setDistance(8.3);
}});
cls.writeToFile("class.txt");
Class cls2 = new Class("CS102", "Computer Science");
cls2.readFromFile("class.txt");
cls2.writeToFile("class.csv");
}
}
```
上面的代码中,我们先创建了一个 `Class` 对象 `cls`,并往里面添加了两个 `Student` 对象。然后,我们将班级成员写入到 `class.txt` 文件中。接着,我们创建了另一个 `Class` 对象 `cls2`,从 `class.txt` 文件中读取了班级成员,并将其写入到 `class.csv` 文件中。
这样就完成了您的要求,班级成员已经被成功写入到 `class.txt` 文件和 `class.csv` 文件中了。
阅读全文