在java中存档我的文件的最佳方法

时间:2014-01-27 13:30:33

标签: java file-io

我需要在我的java程序中存档我需要它们的大量文件(图像),所以我正在寻找一种存档它们的方法(它们太多了!大约30 000张图像)而且我不喜欢将它们存档在一个文件中,该文件会减慢我对java程序的访问速度。所以建议使用什么类型的文件,以及如何将它们存档并使用java访问它们。 我试过这样的事情:Adding files to ZIP file,但我不确定我的案例是否推荐了zip文件。

3 个答案:

答案 0 :(得分:2)

如果这不是您的用例,请随意忽略此答案。

我不知道你需要这些图像,但30000肯定是很多图像。

运送包装,在运行时拆包:通过包装,例如最小化运输尺寸LZMA。请注意,要保持跨平台,您应该运送自己的拆包设施。 (我认为ZIP已包含在JDK中)与导航.zip文件相比,这将允许更快的文件访问。

在运行时下载: 您可以在第一次运行时下载它们。如果您没有自己的服务器,请尝试使用Dropbox,Google Drive等。用户必须下载它们(假设您的程序已初始下载),因此这不会增加额外的带宽成本。这也允许您在没有硬更新的情况下随时间交换它们。

批量发布:这在游戏编程中特别受欢迎。您将不同的图像打包到一个文件中(但仍然可以有多个这样的文件),因此限制了文件的数量。一种简单的方法是使用TexturePacker中的LibGDX

如果没有关于图像分辨率的进一步信息,我无法确定哪种方式适合您。

答案 1 :(得分:0)

在应用程序中处理大量静态数据(图像/ JS / CSS等文件)绝不是一个好主意。

处理静态数据的最好方法是将它们打包到应用程序层次结构之外,例如文件系统中的某个位置,然后在那里访问它们。

答案 2 :(得分:0)

很难准确理解你的建议。但是,确定哪种方法最快的最佳方法可能是实施两种/所有方法,并测量它们以查看哪种方法最快。

我同意将文件嵌入应用程序中是一个坏主意......无论你如何做到这一点。但是,如果您要将它们存储在应用程序之外,那么在将它们存储为压缩和/或存档之间存在明显的权衡,而不是存储和检索它们所需的额外处理。

什么是“最佳”取决于>>您的<< “最佳”的定义......以及如何使用这些图像。