Java圖書管理系統練習程序(五)java
本部份內容,主要實現對文件讀寫操做的修改,使用泛型類的方式,實現對不一樣文件進行相同的讀寫操做。this
一.建立書籍信息類對象
1.首先在bean包中,建立Book類,描述書籍的相關信息,代碼以下:get
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方法 }
2、在util包中,新建FileRWUtil類it
新建FileRWUtil類,實現對全部對象文件進行相同的讀寫操做。代碼以下:io
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根目錄下。class
3、FilwRWUtil類的使用import
private FileRWUtil<User> userFileRWUtil=new FileRWUtil<>("user.txt");