2017-05-04 10 views
0

私のプログラムのデータをファイルに保存しようとしていますが、追加された本や生徒は保存されません。プログラムは実行されますが、データは保存されず、プログラムはデータを保存できません。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!"); 
     } 

    } 
+0

通常、Stackoverflowメンバーのようなフォーラムでは、コーダーが経験している問題の解決策を提供しています。良い投稿とは、あなたが試したこととどこにエラーがあるのか​​を投稿することです。たとえば、「ブックを削除する」コードや、どの部分が失敗したように見えるかなどです。これはメンバーができるだけ早くあなたを助けるのを助けます。またメンバーは、このような投稿を、試していない人物として見て、statckoverflowユーザーにコードを書くことを望んでいます。あなたの削除または保存したコードとあなたが試したものを投稿してください。プログラム全体ではありません。メンバーは、あなたが研究をしたことを知る必要があります。 – Renier

+0

私は投稿を編集して申し訳ありません –

+0

それはキャッチに行くのですか?それはファイルを作成するのですか、それともファイルが空白ですか? – Renier

答えて

0

ファイルに書き込んでいるクラスが実装されているかどうかはわかりませんでした。

このリンクを確認した場合は、使用しているJavaのバージョンにも注意してください。今のところ、ファイルパスと名前をハードコードするだけで、そのファイルが動作しているかどうかを確認できます。

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

はまた、コードがどこに行くだけ見にいくつかのログまたはコンソール印刷物に入れ。

+0

これを試してもうまくいくかどうか確認してください。私の保存メソッドに問題があります。 –

+0

オブジェクト "slib"がシリアル化されているか、 。 – Renier

関連する問題