需要在队列中存储数据应该是永久性的,直到删除

时间:2013-08-01 10:41:23

标签: java queue

import java.util.LinkedList;

public class Queue {
    public static java.util.Queue<String> que = new LinkedList<String>();
    public static void main(String[] args) {


        System.out.println(que);

        que.add("a");
        que.add("b");
        que.add("c");
        que.add("d");

        System.out.println(que);

    }

}

在上面的代码中,值暂时存储,当我运行第1次,第2次,第3次时......输出将如下所示:

[]
[a, b, c, d]

我需要队列数据永久存储 当我第二次跑时,o / p应该是

[a, b, c, d]
[a, b, c, d,a, b, c, d]

.......

如何做到这一点?请帮我 ? 在此先感谢...

2 个答案:

答案 0 :(得分:0)

您可以将队列保存/读取到文件中:

public static void main(String[] args) throws IOException, ClassNotFoundException {
    File file = new File("queue");
    if (file.exists()) {
        try (ObjectInputStream is = new ObjectInputStream(new FileInputStream(file))) {
            que = (java.util.Queue<String>)is.readObject();
        }
    } else {
        que = new LinkedList<String>();
    }
    System.out.println(que);
    que.add("a");
    que.add("b");
    que.add("c");
    que.add("d");
    System.out.println(que);
    try (ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(file))) {
        os.writeObject(que);
    }
}

答案 1 :(得分:0)

看来你正在寻找一些持久性。根据应用程序的作用,为什么不在程序启动/退出时使用简单的文本文件来读取/写入队列的内容?

或者,如果你做的事情更严重,你可以使用数据库。