2 仔细阅读下面给出的代码框架及注释,在 Begin-End 问编写程序代码,序列化给定 Student 对象到给定文件中,再通过反序列化把基转化为 一个对象,具体要求如下:*接收给定的—行字 符 串 (如:/test/a.txt Bob 23
时间: 2024-03-17 13:44:22 浏览: 12
以下是基于Java语言的代码实现:
```java
import java.io.*;
public class Student implements Serializable {
private String name;
private int age;
//构造方法
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//getter和setter方法
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 static void main(String[] args) {
//接收给定的命令行参数
String filePath = args[0];
String name = args[1];
int age = Integer.parseInt(args[2]);
//创建Student对象并赋值
Student student = new Student(name, age);
//序列化Student对象到文件中
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) {
oos.writeObject(student);
System.out.println("序列化成功!");
} catch (IOException e) {
e.printStackTrace();
}
//从文件中反序列化Student对象
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
Student s = (Student) ois.readObject();
System.out.println("反序列化成功!反序列化后的结果为:" + s.toString());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
在命令行中输入以下命令即可运行程序:
```shell
java Student /test/a.txt Bob 23
```
程序会将Student对象序列化到/test/a.txt文件中,然后再从该文件中反序列化出一个新的Student对象,并输出到控制台中。