我正在尝试在运行时之间存储我的ArrayList
。因此,当我将项目输入ArrayList
然后关闭程序然后再打开它并尝试搜索我放入其中的项目仍然存在。
我尝试过MySQL和XML,但我无法理解。如果可以的话,请指导我一个方便的方式来存储ArrayList
这将是惊人的。
编辑:
我正在尝试序列化此ArrayList
:
static ArrayList<Product> Chart=new ArrayList<Product>();
使用这些对象:
double Total;
String name;
double quantity;
String unit;
double ProductPrice;
答案 0 :(得分:4)
答案 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