定义一个Student类,编写程序使用对象输出流将一个Student对象和一个字符串对象写入student.dat文件中,然后使用对象输入流读出对象。 备注:利用Swing实现图形用户界面,在图形用户界面上完成功能操作。
时间: 2024-02-25 22:54:30 浏览: 78
编写一个JAVA程序,定义一个Student类
5星 · 资源好评率100%
好的,这是一个 Java 语言的问题,我可以给你提供一份参考代码,你可以根据代码思路自己实现。
首先,我们需要定义一个 `Student` 类,如下所示:
```java
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
private String gender;
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
}
```
然后,我们需要编写一个 GUI 界面,用来输入学生信息和字符串信息,并将其写入文件中。代码如下:
```java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class WriteObjectGUI extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField nameField, ageField, genderField, stringField;
private JButton writeButton;
public WriteObjectGUI() {
setTitle("写入对象到文件");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(5, 2, 5, 5));
setSize(400, 200);
JLabel nameLabel = new JLabel("姓名:");
nameField = new JTextField("");
JLabel ageLabel = new JLabel("年龄:");
ageField = new JTextField("");
JLabel genderLabel = new JLabel("性别:");
genderField = new JTextField("");
JLabel stringLabel = new JLabel("字符串:");
stringField = new JTextField("");
writeButton = new JButton("写入文件");
writeButton.addActionListener(this);
add(nameLabel);
add(nameField);
add(ageLabel);
add(ageField);
add(genderLabel);
add(genderField);
add(stringLabel);
add(stringField);
add(writeButton);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == writeButton) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String string = stringField.getText();
// 创建Student对象和字符串对象
Student student = new Student(name, age, gender);
String str = string;
try {
// 使用对象输出流将对象和字符串写入文件
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.dat"));
oos.writeObject(student);
oos.writeObject(str);
oos.close();
JOptionPane.showMessageDialog(null, "写入成功!", "写入文件", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new WriteObjectGUI();
}
}
```
在这个 GUI 界面中,我们用 JTextField 输入学生的姓名、年龄和性别,用 JTextField 输入一个字符串,然后点击“写入文件”按钮,就可以将一个 `Student` 对象和一个字符串对象写入文件中。
最后,我们需要编写一个读取文件的程序,并使用对象输入流读出对象。代码如下:
```java
import java.io.*;
public class ReadObject {
public static void main(String[] args) {
try {
// 使用对象输入流读取文件
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.dat"));
Student student = (Student) ois.readObject();
String str = (String) ois.readObject();
ois.close();
System.out.println(student);
System.out.println(str);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
这个程序会依次读取文件中的 `Student` 对象和字符串对象,并在控制台上输出它们的内容。
希望这份代码对你有所帮助。
阅读全文