运行结果报错:四级菜单,选择就报错:"C:\Program Files\Java\jdk-17.0.4.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\lib\idea_rt.jar=51700:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\bin" -Dfile.encoding=UTF-8 -classpath D:\code\java\book\out\production\hello com.book.LibrarySystem java.io.FileNotFoundException: books.dat (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init> (FileInputStream.java:157) at java.base/java.io.FileInputStream.<init> (FileInputStream.java:111) at com.book.DataIO.readObjectFromFile(DataIO.java:20) at com.book.BookManager.loadFromFile(BookManager.java:90) at com.book.LibrarySystem.init(LibrarySystem.java:735) at com.book.LibrarySystem.main(LibrarySystem.java:743) 加载失败 java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1751) at java.base/java.io.ObjectInputStream$FieldValues.<init> (ObjectInputStream.java:2617) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at java.base/java.util.ArrayList.readObject(ArrayList.java:899) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at com.book.DataIO.readObjectFromFile(DataIO.java:21) at com.book.ReaderManager.loadFromFile(ReaderManager.java:112) at com.book.LibrarySystem.init(LibrarySystem.java:736) at com.book.LibrarySystem.main(LibrarySystem.java:743) Caused by: java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.ReaderManager.saveToFile(ReaderManager.java:108) at com.book.LibrarySystem.registerReader(LibrarySystem.java:87) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:52) at com.book.LibrarySystem.loginReader(LibrarySystem.java:80) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:49) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:23) at com.book.LibrarySystem.main(LibrarySystem.java:744) java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1751) at java.base/java.io.ObjectInputStream$FieldValues.<init> (ObjectInputStream.java:2617) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at java.base/java.util.ArrayList.readObject(ArrayList.java:899) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at com.book.DataIO.readObjectFromFile(DataIO.java:21) at com.book.LibWorkerManager.loadFromFile(LibWorkerManager.java:73) at com.book.LibrarySystem.init(LibrarySystem.java:737) at com.book.LibrarySystem.main(LibrarySystem.java:743) Caused by: java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.LibWorkerManager.saveToFile(LibWorkerManager.java:69) at com.book.LibrarySystem.registerLibWorker(LibrarySystem.java:229) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:194) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:26) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:55) at com.book.LibrarySystem.showReaderChoiceMenu(LibrarySystem.java:112) at com.book.LibrarySystem.queryBookInfo(LibrarySystem.java:144) at com.book.LibrarySystem.showReaderChoiceMenu(LibrarySystem.java:106) at com.book.LibrarySystem.loginReader(LibrarySystem.java:75) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:49) at com.book.LibrarySystem.registerReader(LibrarySystem.java:88) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:52) at com.book.LibrarySystem.loginReader(LibrarySystem.java:80) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:49) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:23) at com.book.LibrarySystem.main(LibrarySystem.java:744) java.io.FileNotFoundException: borrowRecords.dat (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init> (FileInputStream.java:157) at java.base/java.io.FileInputStream.<init> (FileInputStream.java:111) at com.book.DataIO.readObjectFromFile(DataIO.java:20) at com.book.BorrowRecordManager.loadFromFile(BorrowRecordManager.java:79) at com.book.LibrarySystem.init(LibrarySystem.java:738) at com.book.LibrarySystem.main(LibrarySystem.java:743) 加载失败 加载失败 加载失败 一级菜单 欢迎来到图书管理系统,请选择: 1.读者界面 2.图书管理员界面 3.退出系统 请选择操作1-3:2 二级菜单 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:1 请输入登录名: 1 请输入密码: 1 登录失败 二级菜单 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:2 请输入图书管理员登录名: 1 请输入图书管理员登录密码: 1 请输入图书管理员姓名: 1 请输入图书管理员性别: 1 请输入图书管理员电话号码: 1 请输入图书管理员年龄: 1 添加成功 java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.LibWorkerManager.saveToFile(LibWorkerManager.java:69) at com.book.LibrarySystem.registerLibWorker(LibrarySystem.java:229) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:194) at com.book.LibrarySystem.loginLibWorker(LibrarySystem.java:222) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:191) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:26) at com.book.LibrarySystem.main(LibrarySystem.java:744) 二级菜单 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:1 请输入登录名: 1 请输入密码: 1 登录成功 三级菜单 欢迎来到图书管理员选择界面,请选择: 1.借阅管理 2.读者管理 3.书籍管理 4.图书管理员账户信息设置 5.返回上级菜单 6.退出系统 请选择操作1-6:1 四级菜单 欢迎来到借阅管理界面,请选择: 1.查看所有用户借阅记录 2.查看某个用户的所有借阅记录 3.读者借阅/归还 4.返回上级菜单 请选择操作1-4:4 三级菜单 欢迎来到图书管理员选择界面,请选择: 1.借阅管理 2.读者管理 3.书籍管理 4.图书管理员账户信息设置 5.返回上级菜单 6.退出系统 请选择操作1-6:3 四级菜单 欢迎来到书籍管理界面,请选择: 1.添加书籍 2.删除书籍 3.修改书籍 4.查询书籍 5.显示所有书籍 6.返回上级菜单 请选择操作1-6:5 Process finished with exit code 0
必应
抱歉,你的代码有一些错误。我尝试帮你修改一下:
你需要在Reader.java、LibWorker.java和BorrowRecord.java文件中将Scanner对象声明为transient,这样就不会在序列化和反序列化时出现问题。例如,在Reader.java文件中,将private Scanner sc = new Scanner(System.in);修改为private transient Scanner sc = new Scanner(System.in);
你需要在DataIO.java文件中添加一个判断文件是否存在的条件,如果不存在则创建一个空的文件。例如,在saveObjectToFile方法中,将FileOutputStream fos = new FileOutputStream(fileName);修改为
Filefile=newFile(fileName); if (!file.exists()) { file.createNewFile(); } FileOutputStreamfos=newFileOutputStream(file);
书籍添加报错,然后文件都没有创建,直接读取,也没有自动创建新文件,运行结果是这样子的:"C:\Program Files\Java\jdk-17.0.4.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\lib\idea_rt.jar=51985:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\bin" -Dfile.encoding=UTF-8 -classpath D:\code\java\book\out\production\hello com.book.LibrarySystem java.io.FileNotFoundException: books.dat (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111) at com.book.DataIO.readObjectFromFile(DataIO.java:20) at com.book.BookManager.loadFromFile(BookManager.java:90) at com.book.LibrarySystem.init(LibrarySystem.java:735) at com.book.LibrarySystem.main(LibrarySystem.java:743) 加载失败 java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1751) at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at java.base/java.util.ArrayList.readObject(ArrayList.java:899) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at com.book.DataIO.readObjectFromFile(DataIO.java:21) at com.book.ReaderManager.loadFromFile(ReaderManager.java:112) at com.book.LibrarySystem.init(LibrarySystem.java:736) at com.book.LibrarySystem.main(LibrarySystem.java:743) Caused by: java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.ReaderManager.saveToFile(ReaderManager.java:108) at com.book.LibrarySystem.registerReader(LibrarySystem.java:87) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:52) at com.book.LibrarySystem.loginReader(LibrarySystem.java:80) at com.book.LibrarySystem.showReaderLoginMenu(LibrarySystem.java:49) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:23) at com.book.LibrarySystem.main(LibrarySystem.java:744) java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1751) at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at java.base/java.util.ArrayList.readObject(ArrayList.java:899) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231) at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434) at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) at com.book.DataIO.readObjectFromFile(DataIO.java:21) at com.book.LibWorkerManager.loadFromFile(LibWorkerManager.java:73) at com.book.LibrarySystem.init(LibrarySystem.java:737) at com.book.LibrarySystem.main(LibrarySystem.java:743) Caused by: java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.LibWorkerManager.saveToFile(LibWorkerManager.java:69) at com.book.LibrarySystem.registerLibWorker(LibrarySystem.java:229) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:194) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:26) at com.book.LibrarySystem.main(LibrarySystem.java:744) java.io.FileNotFoundException: borrowRecords.dat (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111) at com.book.DataIO.readObjectFromFile(DataIO.java:20) at com.book.BorrowRecordManager.loadFromFile(BorrowRecordManager.java:79) at com.book.LibrarySystem.init(LibrarySystem.java:738) at com.book.LibrarySystem.main(LibrarySystem.java:743) 加载失败 加载失败 加载失败 *************一级菜单************* 欢迎来到图书管理系统,请选择: 1.读者界面 2.图书管理员界面 3.退出系统 请选择操作1-3:2 *************二级菜单************* 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:1 请输入登录名: 1 请输入密码: 1 登录失败 *************二级菜单************* 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:2 请输入图书管理员登录名: 1 请输入图书管理员登录密码: 1 请输入图书管理员姓名: 1 请输入图书管理员性别: 1 请输入图书管理员电话号码: 1 请输入图书管理员年龄:
1 添加成功 java.io.NotSerializableException: java.util.Scanner at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197) at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at java.base/java.util.ArrayList.writeObject(ArrayList.java:866) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1201) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1526) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354) at com.book.DataIO.saveObjectToFile(DataIO.java:11) at com.book.LibWorkerManager.saveToFile(LibWorkerManager.java:69) at com.book.LibrarySystem.registerLibWorker(LibrarySystem.java:229) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:194) at com.book.LibrarySystem.loginLibWorker(LibrarySystem.java:222) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:191) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:26) at com.book.LibrarySystem.main(LibrarySystem.java:744) *************二级菜单************* 欢迎来到图书管理员登录界面,请选择: 1.登录 2.注册 3.返回上级菜单 4.退出系统 请选择操作1-4:1 请输入登录名: 1 请输入密码: 1 登录成功 *************三级菜单************* 欢迎来到图书管理员选择界面,请选择: 1.借阅管理 2.读者管理 3.书籍管理 4.图书管理员账户信息设置 5.返回上级菜单 6.退出系统 请选择操作1-6:3 *************四级菜单************* 欢迎来到书籍管理界面,请选择: 1.添加书籍 2.删除书籍 3.修改书籍 4.查询书籍 5.显示所有书籍 6.返回上级菜单 请选择操作1-6:1 请输入书籍名称: 1 请输入书籍作者: 1 请输入书籍价格: 1 请输入书籍ISBN号: 1 请输入书籍类型: 1 请输入书籍状态(true或false): 1 Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextBoolean(Scanner.java:1893) at com.book.Book.inputBook(Book.java:31) at com.book.LibrarySystem.addBook(LibrarySystem.java:531) at com.book.LibrarySystem.showBookManageMenu(LibrarySystem.java:500) at com.book.LibrarySystem.showLibWorkerChoiceMenu(LibrarySystem.java:252) at com.book.LibrarySystem.loginLibWorker(LibrarySystem.java:217) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:191) at com.book.LibrarySystem.registerLibWorker(LibrarySystem.java:230) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:194) at com.book.LibrarySystem.loginLibWorker(LibrarySystem.java:222) at com.book.LibrarySystem.showLibWorkerLoginMenu(LibrarySystem.java:191) at com.book.LibrarySystem.showMainMenu(LibrarySystem.java:26) at com.book.LibrarySystem.main(LibrarySystem.java:744)