使用Java添加一个用户信息到文件使用对象输出输入流并解释每一行代码
以下是使用Java添加一个用户信息到文件的示例代码:
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class AddUserToFile {
public static void main(String[] args) {
// 创建用户信息对象
User user = new User("张三", 20, "男");
// 读取文件中原有的用户信息
List<User> userList = readUserFromFile("user.txt");
// 将新用户信息添加到用户列表中
userList.add(user);
// 将用户列表写入文件中
writeUserToFile(userList, "user.txt");
}
/**
* 从文件中读取用户列表
*/
private static List<User> readUserFromFile(String filePath) {
List<User> userList = new ArrayList<>();
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
userList = (List<User>) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return userList;
}
/**
* 将用户列表写入文件中
*/
private static void writeUserToFile(List<User> userList, String filePath) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) {
oos.writeObject(userList);
} catch (IOException e) {
e.printStackTrace();
}
}
}
class User implements Serializable {
private String name;
private int age;
private String gender;
public User(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// getter 和 setter 方法
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
代码解释:
-
User类:定义了用户信息的数据结构,并实现了Serializable接口,以便可以使用对象输入输出流将其写入文件。 -
AddUserToFile类:包含main()方法,负责添加新用户信息到文件。 -
readUserFromFile()方法:从文件中读取用户信息列表,返回List<User>类型的用户列表。a.
ObjectInputStream:对象输入流,用于将对象从文件中读取。b.
FileInputStream:文件输入流,用于读取文件中的字节流。c.
try-with-resources语句:自动关闭资源,无需手动关闭输入流对象。 -
writeUserToFile()方法:将用户信息列表写入文件中。a.
ObjectOutputStream:对象输出流,用于将对象写入文件中。b.
FileOutputStream:文件输出流,用于写入字节流到文件中。c.
try-with-resources语句:自动关闭资源,无需手动关闭输出流对象。 -
main()方法:程序的入口,执行以下步骤:a. 创建新的
User对象。b. 读取文件中原有的用户列表。
c. 将新用户信息添加到用户列表中。
d. 将用户列表写入文件中。
-
User类的toString()方法:返回用户信息的字符串表示形式
原文地址: https://www.cveoy.top/t/topic/frAe 著作权归作者所有。请勿转载和采集!