Java库系统程序 - 保存程序



我正在尝试将我的数据从程序中保存到文件,但不会保存添加的书籍或学生。该程序将运行,但不会保存任何数据,也不会允许程序保存数据。

    private static void addBook() {
        // TODO Auto-generated method stub
        int isbn, numbercopies;
        String title, author, publisher;

        System.out.println("nEnter Title: ");
        title = in.next();
        System.out.println("nEnter Author: ");
        author = in.next();
        System.out.println("nEnter Publisher: ");
        publisher = in.next();
        System.out.println("nEnter ISBN: ");
        isbn = in.nextInt();
        System.out.println("nEnter Number of Copies:");
        numbercopies = in.nextInt();

// creating book object
        Book b = new Book(isbn, numbercopies, title, author, publisher);
// adding book to library via method
        lib.addBook(b);
    }
    private static void addStudent(){
        int sID, age;
        String FirstName, LastName;


        System.out.println("nEnter Full Name: ");
        LastName = in.nextLine();
        FirstName = in.nextLine();
        System.out.println("nEnter Age: ");
        age = in.nextInt();
        System.out.println("nEnter Student ID:");
        sID = in.nextInt();
        Students s = new Students(age, sID, FirstName, LastName);
// adding student to student library
        slib.addStudent(s);
    }
// method to save and quit  

    private static void saveAndQuit() {
        // TODO Auto-generated method stub
        System.out.println("Enter file name for Student: ");
        fileName = in.next();
// stop the program from running with the boolean, through break        
        running = false;
// writing to file      
        FileOutputStream fos = null;
        ObjectOutputStream out = null;

        try {
            fos = new FileOutputStream(fileName);
            out = new ObjectOutputStream(fos);
            out.writeObject(slib);

//closing the stream            
            fos.close();
            out.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

// getting the file input
    private static void loadScript(String name) {
        // TODO Auto-generated method stub
        FileInputStream fis = null;
        ObjectInputStream in = null;
        File file = new File(name);
        if (file.exists()) {
            try {
                fis = new FileInputStream(file);
                in = new ObjectInputStream(fis);
                lib = (Library) in.readObject();
                fis.close();
                in.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("nThe file does not exist!");
        }
    }

没有看到您写的要文件的类是否已实现。

如果是检查此链接,此链接还会注意您正在使用的Java版本。目前

https://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/

还放入一些记录或控制台打印,以查看代码的去向。

最新更新