我想问是否可以将文本文件放入我的jar中,我用它们在我的游戏中制作 map ,但用户可以获得高分。现在我想用 map 保存高分,所以我必须将 map 保存在用户的电脑上。我有什么办法可以做到这一点吗?我在互联网上搜索了一些想法,但我找不到任何接近我想要的东西。我只学了一年的 3/4 java,所以我对这些东西了解不多,在 eclipse 调试之外发生的所有事情对我来说都是问题(文件主要是其中之一,空异常等)。
现在的主要问题。
可以吗?如果是,您有我可以搜索的任何术语,或者一些网站/指南/教程吗?如果没有,还有其他方法可以保存高分吗?
编辑: 说清楚
我可以将文本文件(文件内的文本)提取到不同的文件中,例如我的游戏的主目录(我保存设置和内容的地方),基本 map 位于 jar 文件内,所以我希望在程序第一次启动时将它们提取
问候卡罗琳
最佳答案
"extracted to a different file in like the home directory of my game (where i save the settings and stuff) the basic maps are inside the jar file, so i want them to be extracted on the first startup of the program"
您可以使用getClass().getResource()
获取URL
URL url = getClass().getResource("/res/myfile.txt");
然后从 URL 的 URI 创建一个 File 对象
File file = new File(url.toURI());
然后执行正常的文件操作即可。
if (file.renameTo(new File(System.getProperty("user.home") + "\\" + file.getName()))) {
System.out.println("File is moved successful!");
} else {
System.out.println("File is failed to move!");
}
假设您的文件结构如下所示,它应该可以正常工作
ProjectRoot
src
res
myfile.txt
<小时/>
注意:上面是移动整个文件。如果您只想提取文件内的数据,那么您可以简单地使用
InputStream is = getClass().getResourceAsStream("/res/myfile.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
只需使用阅读器
进行正常的IO操作。请参阅here获取编写文件的帮助。
关于java - 从可执行 JAR 中的 res 文件夹中提取文件(具体为 txt 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192199/