我有这个基于点对点文件共享系统的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);
仍然无法追踪它存储的位置。
答案 0 :(得分:1)
也许它只是将文件系统用作数据库。例如,如果它知道它下载的所有文件都是特定文件夹,那么它只扫描该文件夹以查找以前下载的文件。
编辑:在读取该应用程序还存储IP地址后,必须以本地或远程以某种方式存储此信息。如果您确定它不是本地存储的,那么唯一的答案是使用唯一的客户端标识符(例如会话cookie,IP地址或烘焙到应用程序客户端的唯一ID)从服务器检索此信息。
答案 1 :(得分:0)
有一个名为Preferences的类,它以依赖于操作系统的方式存储这种信息。对于Windows,它将其存储在Windows注册表中。在其他操作系统上,“特殊”位置可能存在某种平面文件。它可能是您的应用程序正在使用的。