有谁能建议我如何存储历史?
我正在创建一个Web浏览器,我必须保存历史记录,然后在用户需要时显示。我尝试过ArrayList,但它只会存储打开的应用程序使用的Web链接。关闭应用程序后,所有保存的Web链接都将消失。 有什么方法可以显示所有前一天的网络链接。 请在我的项目中根据需要回复代码。
我使用Swing在Java中创建Web浏览器
答案 0 :(得分:1)
答案 1 :(得分:0)
您创建的ArrayList仅存在于内存中,因此当java程序退出时,操作系统会重用相同的内存来运行其他程序,因此ArrayList会丢失。
您需要以某种方式将历史记录链接存储到磁盘。
最简单的选择就是在java程序退出之前将url写入文件,然后在程序启动时将其读回。首先,也许你可以将你的java历史对象转换为json。有几个json库,但Gson(http://javajing.com/2012/07/13/json-using-gson.html)可能最容易入手。因此,步骤将是:1)将java历史对象(或您提出的任何类)转换为json,2)将json保存到文件中。恢复URL将是相反的:1)从文件中读取json,2)将json转换回History类(或其他)。
另一种选择是使用数据库。我建议您查看sqlite或h2。两者都可以嵌入到java应用程序中。对于此选项,您需要创建数据库模式,然后使用sql查询并在数据库中插入URL。
另一种选择可能是将网址存储到像亚马逊S3这样的存储服务中。