Java应用程序如何不使用数据库,存储以前的信息并显示它

时间:2014-04-24 18:34:02

标签: java database p2p flat-file

我有这个基于点对点文件共享系统的java应用程序项目(客户端)。 它没有使用任何类型的数据库。

还有一个下载选项卡,显示以前下载的文件的名称以及当前正在下载的文件。

我不明白的是,这些信息是从哪里存储和检索的。每次我关闭并重新打开应用程序时,都会有以前下载的信息。

此外,它还存储以前连接的主机的IP地址,并在选项卡中显示它们。

我检查了项目文件夹中没有任何平面文件,db文件或日志文件。 有150个代码文件,所以我真的不能通过它找出来。

很抱歉,如果这个问题太天真,但如果有人提出一个线索,请发表评论。

编辑:我找到了这段代码

    public void saveDownloadInfo()
        throws IOException
{
    FileOutputStream    fos = new FileOutputStream(ServiceManager.getDownloadSaveFilename());
    ObjectOutputStream  oos = new ObjectOutputStream(fos);

    try
    {
        // Use latest version to serialize.
        serialize1(oos);
    }
    finally
    {
        oos.close();
    }
}


public void loadDownloadInfo()
        throws Exception
{
    FileInputStream     fis = new FileInputStream(ServiceManager.getDownloadSaveFilename());
    ObjectInputStream   ois = new ObjectInputStream(fis);

仍然无法追踪它存储的位置。

2 个答案:

答案 0 :(得分:1)

也许它只是将文件系统用作数据库。例如,如果它知道它下载的所有文件都是特定文件夹,那么它只扫描该文件夹以查找以前下载的文件。

编辑:在读取该应用程序还存储IP地址后,必须以本地或远程以某种方式存储此信息。如果您确定它不是本地存储的,那么唯一的答案是使用唯一的客户端标识符(例如会话cookie,IP地址或烘焙到应用程序客户端的唯一ID)从服务器检索此信息。

答案 1 :(得分:0)

有一个名为Preferences的类,它以依赖于操作系统的方式存储这种信息。对于Windows,它将其存储在Windows注册表中。在其他操作系统上,“特殊”位置可能存在某种平面文件。它可能是您的应用程序正在使用的。