Java图书管理系统练习程序(五)

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

猜你喜欢

转载自my.oschina.net/u/3537796/blog/2612995