我正在学习java,目前正在尝试开发一个简单的应用程序。我的问题是你可以在.jar内部的文本文件中存储有关设置等的数据吗?如果是这样你将如何在java中访问它?对不起,如果这是一个非常愚蠢的想法。
答案 0 :(得分:3)
InputStream is = this.getClass().getResourceAsStream("/data/file.txt");
您获得的资源需要位于类路径
答案 1 :(得分:1)
是的,你可以,这不是一个愚蠢的问题,我们都需要从某个地方开始。
您的问题分为两部分:
将数据/文本文件添加到.jar - (使用ant来jar it :)将“fileset dir = ...”添加到jar目标,其中设置了dir等于具有数据/文本文件的目录。请参阅How can I include data text files in a jar using Ant?
从java代码中访问该数据/文本文件 - 您需要使用ClassLoader和getResourceAsStream。请参阅Loading files in JAR in Tomcat using getResourceAsStream
另外,请查看https://github.com/gitjonathan/turbo-sansa,我有一个正在运行的版本。
答案 2 :(得分:0)
您可以将数据存储在.jar中吗?
只读数据可以存储在JAR文件中。如果JAR在类路径上,则可以使用getResourceAsStream(...)
读取此类数据;如果不在类路径上,则可以使用标准JAR文件API类。
但是将可更新数据存储在JAR文件中是有问题的:
在很多情况下都是不可能的;例如因为JAR文件是只读的或者是动态下载的。
在所有其他情况下,它会非常尴尬,因为标准JAR文件API类不支持更新。 (您需要创建一个新的ZIP文件,除了要更新的文件之外,复制旧内容,添加该文件,然后重命名生成的文件。)