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

Java 在删除之前,在队列中存储数据的需要应该是永久性的,java,queue,Java,Queue,我需要队列数据应该永久存储 当我第二次运行时,o/p应为 [] [a, b, c, d] 如何做到这一点?请帮帮我? 提前感谢…您可以将队列保存/读取到文件: [a, b, c, d] [a, b, c, d,a, b, c, d] publicstaticvoidmain(字符串[]args)抛出IOException、ClassNotFoundException{ 文件=新文件(“队列”); if(file.exists()){ try(ObjectInputStream is=new

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

[]
[a, b, c, d]

如何做到这一点?请帮帮我?
提前感谢…

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

[a, b, c, d]
[a, b, c, d,a, b, c, d]
publicstaticvoidmain(字符串[]args)抛出IOException、ClassNotFoundException{
文件=新文件(“队列”);
if(file.exists()){
try(ObjectInputStream is=newobjectinputstream(newfileinputstream(file))){
que=(java.util.Queue)是.readObject();
}
}否则{
que=新的LinkedList();
}
系统输出println(que);
q.添加(“a”);
q.添加(“b”);
q.添加(“c”);
q.添加(“d”);
系统输出println(que);
try(ObjectOutputStream os=newobjectoutputstream(newfileoutputstream(file))){
os.writeObject(que);
}
}

您似乎在寻找某种持久性。根据应用程序正在执行的操作,为什么不在程序启动/退出时使用一个简单的文本文件来读/写队列的内容呢


或者,如果您正在做一些更严肃的事情,您可以使用数据库。

您想要一个机制吗?这似乎是XY问题。在我的应用程序中,我将在将应用程序加载到客户端站点期间跟踪用户信息。。如果我在运行时将信息存储到db,那么我的应用程序将加载缓慢。。为了避免将数据插入队列,在后台进程中,我将队列数据存储到db并删除队列。。当更多用户使用我的应用程序时,数据会更多,所以将队列数据存储到文件中是否正确?我认为使用文件将是最好的方法;您的程序将承担的唯一成本是读取和写入文件。在任何情况下,当程序启动和退出时都会发生这种情况,因此用户几乎不会注意到。谢谢。。如果将数据写入文件比将数据存储到数据库花费更少的时间?我认为写入本地文件应该比写入远程数据库文件更快,而数据库将位于同一服务器中。。哪一个更快?否则,还有其他的解决办法吗?我不认为会有很大的不同,还有另一件事要考虑:用SeriTuy保存文件要简单得多。
[a, b, c, d]
[a, b, c, d,a, b, c, d]
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);
    }
}