我们需要将数据存入文件当中以及将数据从文件当中取出返回的时候,我以Hashtable<K,J>的方式进行阐述:
首先我们可以自己写一个类假设为EXpressIOUtil类。
类里面定义两个方法一个是将数据从文件中取出的方法,一个是将数据存入文件当中的方法。
将数据从文件中取出:
public static Object reader(String fileName) throws
IOException, ClassNotFoundException {
//首先创建一个文件输入流对象fileInputStream,调用构造方法带文件名(在这里统一以fileName表示了文件名例如"a.txt"),表示是从该文件中取出的数据。
FileInputStream fileInputStream = new FileInputStream(fileName);
//然后需要创建一个传入数据的对象理解为对象流(便于大家的理解),ObjectInputStream类的对象
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
//然后返回一个Object的对象o
Object o = objectInputStream.readObject();
return o;
}
将数据存入文件当中的方法:
public static void writer(String fileName, Object obj) throws IOException {
//创建一个文件输出流对象,调用带参(文件名)的构造方法。
FileOutputStream fileOutputStream = new FileOutputStream(fileName);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(obj);
objectOutputStream.close();
}
数据的输入与输出已经准备完毕之后然后就在我们想要的地方进行创建文件
File file = new File(fileName);
//首先判断此文件是否存在,不存在则创建文件。
if (!file.exists()){
file.createNewFile();
}
在程序开始做一个这样的形式:
//从文件中取出数据
try {
Object obj = PersonIOUtil.reader("Person.txt");
//防止空指针异常
if (obj!=null && obj instanceof Hashtable)
//传给list,list是HashTable<K,J>的对象,存储数据。
list = (Hashtable<String,Person>) obj;
} catch (IOException e) {
System.out.println(e.getMessage());
}catch (ClassNotFoundException e){
System.out.println(e.getMessage());
}
然后在需要调用上面的两个方法时,在恰当的地方调用即可。