package jxc.book.comman; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; public class FileTools {
//对文件中内容的类型进行泛型,以便读取任何内容 public static <T> void saveFile(List<T> bookList,String fileName){
//创建一个文件,需要读写操作的对象 File file = new File(fileName);
//输入流,也就是写的操作, ObjectOutputStream out = null; try {
//通过new三个对象实例,我们会有更多的操作方法。 out = new ObjectOutputStream( new BufferedOutputStream( new FileOutputStream(file) ) );
//把内容写进文件 out.writeObject(bookList); } catch (Exception e) { e.printStackTrace(); } finally{ try {
//关闭输入流。 out.close(); } catch (Exception e) { e.printStackTrace(); } } } public static final <T> List<T> readList(String fileName){ //1,把文件内容读出来,创建一个file对象
File file = new File(fileName);
如果这个对象文件不存在,就创建一个数组 if(!file.exists()){ return new ArrayList<T>(); } List<T> result = null; ObjectInputStream in = null; try { in = new ObjectInputStream( new BufferedInputStream( new FileInputStream(file) ) ); result = (List<T>) in.readObject(); } catch (Exception e) { e.printStackTrace(); } finally{ try { in.close(); } catch (Exception e) { e.printStackTrace(); } } return result; } }
浙公网安备 33010602011771号