Java圖書管理系統練習程式(五)
阿新 • • 發佈:2018-12-08
Java圖書管理系統練習程式(五)
本部分內容,主要實現對檔案讀寫操作的修改,使用泛型類的方式,實現對不同檔案進行相同的讀寫操作。
一.建立書籍資訊類
1.首先在bean包中,建立Book類,描述書籍的相關資訊,程式碼如下:
package sky.book.bean; import java.io.Serializable; public class Book implements Serializable { private int id; private String bookname; private String bookauthor; private int count; //省略其setter和getter方法 }
二、在util包中,新建FileRWUtil類
新建FileRWUtil類,實現對所有物件檔案進行相同的讀寫操作。程式碼如下:
package sky.book.util; import java.io.*; import java.util.List; public class FileRWUtil<E> { private String fileName; public FileRWUtil(String fileName){ this.fileName=fileName; } public boolean writeDateToFile(List<E> myObject){ // List<User> userListOut=new ArrayList<User>(); File file=new File(this.fileName); try { ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file,false)); oos.writeObject(myObject); oos.flush(); oos.close(); } catch (IOException e) { e.printStackTrace(); } return true; } public List<E> readDateFromFile(){ File file=new File(this.fileName); ObjectInputStream ois=null; List<E> myObject=null; try { ois=new ObjectInputStream(new FileInputStream(file)); myObject= (List<E>) ois.readObject(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally{ try { ois.close(); } catch (IOException e) { e.printStackTrace(); } } return myObject; } }
其中的構造方法,用於注入檔案的名稱。本專案中,所有儲存物件的檔案,入在src根目錄下。
三、FilwRWUtil類的使用
private FileRWUtil<User> userFileRWUtil=new FileRWUtil<>("user.txt");