2.仔细阅读下面给出的代码框架及注释,在Begin-End 间编写程序代码, 序序列化给定 Student 对象到给定文件中,再通过反序列化把其转化为一个 对象,具体要求如下: •接收给定的一行字符串(如:/test/a.txt Bob 23,第一部分为给定 文件路径,第二部分为 Student 对象姓名,第三部分为 Student 对 象年龄); •给 Student 对象属性赋值,并序列化到文件中; •通过反序列化把文件内容转化为一个对象,并输出所有属性值。 Student 类代码如下: 1. import java.io.Serializable; 2. public class Student implements Serializable { public String public int age; 5. import java.io.*; import java.util.Arrays; import java.util.Scanner; public class FileTest { public static void main(String[] args) throws IOException, ClassNotFoundException Scanner scanner = new Scanner (System.in); String filedir = scanner. next () ; 2 String name = scanner. next () ; int age = scanner .nextInt); 1/ 请在此编写代码 ********** Begin **********/ 1/创建 Student 对象 /给对象属性赋值 1/序列化对象到文件中,并通过反序列化读取文件内容,最后打 印对象的所有属性 End
时间: 2024-01-17 20:40:45 浏览: 42
/********** Begin **********/
// 1. 创建 Student 对象并给属性赋值
Student student = new Student();
student.name = name;
student.age = age;
// 2. 序列化 Student 对象到文件中
FileOutputStream fos = new FileOutputStream(filedir);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(student);
oos.close();
fos.close();
// 3. 通过反序列化读取文件内容并输出所有属性值
FileInputStream fis = new FileInputStream(filedir);
ObjectInputStream ois = new ObjectInputStream(fis);
Student deserializedStudent = (Student) ois.readObject();
ois.close();
fis.close();
System.out.println("Name: " + deserializedStudent.name);
System.out.println("Age: " + deserializedStudent.age);
/********** End **********/
相关问题
2 仔细阅读下面给出的代码框架及注释,在 Begin-End 问编写程序代码,序列化给定 Student 对象到给定文件中,再通过反序列化把基转化为 一个对象,具体要求如下:*接收给定的—行字 符 串 (如:/test/a.txt Bob 23
以下是基于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对象,并输出到控制台中。
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示在 Begin-End 之间编写程序代码。输出格式请参考测试集中的预期输出。data.csv 文件的位置为:step2/data.csv。
```python
import pandas as pd
# Step 1 读取数据
data = pd.read_csv("step2/data.csv", encoding="gbk")
# Step 2 数据预处理
# TODO: 选取前3列作为新的 DataFrame,并将列名改为 ["证券代码", "证券名称", "收盘价"]
new_data = data.iloc[:, :3]
new_data.columns = ["证券代码", "证券名称", "收盘价"]
# TODO: 将 "证券代码" 列的数据类型转换为字符串类型
new_data["证券代码"] = new_data["证券代码"].astype(str)
# TODO: 将 "收盘价" 列的数据保留两位小数
new_data["收盘价"] = new_data["收盘价"].round(2)
# Step 3 输出处理后的数据
# TODO: 输出前5行数据
print(new_data.head())
# TODO: 输出数据的统计信息,包括计数、均值、标准差、最小值、25%分位数、50%分位数、75%分位数、最大值
print(new_data.describe())
```