package com.oa.listenner; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import java.util.Random; import org.apache.struts2.ServletActionContext; import bsh.This; //将内存中的一个对象持久化到一个文件中 public class Persistence { public static Map variables = null; private static String saveFileName = "C:/temp.object"; static { if (new File(saveFileName).exists()) { try { FileInputStream inputStream = new FileInputStream(saveFileName); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); variables = (Map) objectInputStream.readObject(); objectInputStream.close(); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } } else { if (variables == null) { variables = new HashMap(); } } } public static String setVariable(Serializable value) { String randomNameString = new Random().nextLong() + ""; if (variables != null) { variables.put(randomNameString, value); } saveToFile(); return randomNameString; } public static void saveToFile() { try { FileOutputStream outputStream = new FileOutputStream(saveFileName); ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(variables); objectOutputStream.flush(); outputStream.flush(); objectOutputStream.close(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } } public static Serializable getVariable(String name) { if (variables != null) { return (Serializable) variables.get(name); } return null; } public static void removeVariable(String name){ variables.remove(name); } public static void main(String[] args) { System.out.println(); } }