如何存储arraylist?

时间:2012-08-06 18:21:59

标签: java mysql xml arraylist

我正在尝试在运行时之间存储我的ArrayList。因此,当我将项目输入ArrayList然后关闭程序然后再打开它并尝试搜索我放入其中的项目仍然存在。

我尝试过MySQL和XML,但我无法理解。如果可以的话,请指导我一个方便的方式来存储ArrayList这将是惊人的。

编辑:

我正在尝试序列化此ArrayList

static ArrayList<Product> Chart=new ArrayList<Product>();

使用这些对象:

double Total;
String name;
double quantity;
String unit;
double ProductPrice;

3 个答案:

答案 0 :(得分:4)

查看对象序列化,听起来就像你想要的那样

What is object serialization?

这允许您将Java对象写入文件并在以后读取它。

答案 1 :(得分:1)

这是一个例子。它也会压缩文件,但您不必这样做。您还可以使用流写入MYSQL blob而不是文件。

public static <T> void writeToGZIP(String filename, T obj) {
    ObjectOutputStream os = null;

    try {
        os = new ObjectOutputStream(new GZIPOutputStream(new FileOutputStream(filename)));
        os.writeObject(obj);                    
        System.out.println("Object written to " + filename);
    } catch (Exception e) {         
        e.printStackTrace();            
    } finally {
        try {
            if (os != null) { os.flush(); os.close(); }
        } catch (IOException e) {           
            e.printStackTrace();
        }
    }       
}

@SuppressWarnings("unchecked")
public static <T> T readFromGZIP(String filename, T obj) {      
    ObjectInputStream ois = null;       

    try {
        ois = new ObjectInputStream(new GZIPInputStream(new FileInputStream(filename)));            
        obj = (T) ois.readObject();         
    } catch (Exception e) {         
        e.printStackTrace();            
    } finally { 
        try {
            if( ois != null ) ois.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return obj;
}

答案 2 :(得分:0)

ObjectOutputStream和ObjectInputStream