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");