1

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

我已经尝试过 MySQL 和 XML,但我无法弄清楚。如果可以的话,请指导我寻找一种简单的存储方式,ArrayList那将是惊人的。

编辑:

我正在尝试序列化ArrayList

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

使用这些对象:

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

3 回答 3

4

查看对象序列化,听起来正是您想要的

什么是对象序列化?

这允许您将 Java 对象写入文件并稍后将其读回。

于 2012-08-06T18:23:01.007 回答
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;
}
于 2012-08-06T18:33:08.170 回答
0

对象输出流和对象输入流

于 2012-08-06T18:23:48.213 回答