gpt4 book ai didi

java - 无法从服务器上的java小程序读取相关文本文件

转载 作者:行者123 更新时间:2023-11-30 04:13:19 25 4
gpt4 key购买 nike

我用java以小程序的形式制作了一个游戏。它包含两个文本文件:

dictionary.txt - 包含游戏中所有接受的单词(类似于 boggle)

highScores.txt - 包含在线玩游戏的任何人的高分

一切都在 Eclipse 中完美运行,但是当我将小程序放在我的网站上(以所有其他小程序的工作方式包装在 html 中)时,它给了我一个 AccessControlException 并说我无法访问字典文本文件。我厌倦了研究这个。几乎所有内容都说要签署我的小程序,但我不想支付数百美元,而且我很确定有更好的方法。有些地方提到了policytool来制作策略文件,但他们如何解释它确实令人困惑。我尝试将文本文件放在 jar 内部和外部的同一个文件夹中。请有人帮我解决这个问题。

这是我加载文件的方法:

    try{
BufferedReader b = new BufferedReader(new FileReader("res/dictionary.txt"));
boolean endLoop = false;
while(!endLoop){
String s = b.readLine();
if(s != null){ dictionary.add(s); }
else{ endLoop = true; }
}
b.close();
}catch(IOException e){
e.printStackTrace();
}

最佳答案

当小程序在 Web 浏览器中运行时,这两个文件仍然位于 Web 服务器上。因此,您无法通过文件系统访问它们 - 即使您有权这样做,因为它们根本不存在!

BufferedReader b = new BufferedReader(new FileReader("res/dictionary.txt"));

尝试访问本地(即运行浏览器的用户计算机上)文件“/res/dictionary.txt”。

这个问题有两种可能的解决方案

  1. 将文件放在网络服务器上的某个位置,然后打开 URLConnection 来读取它们。这始终是允许的(小程序可以连接到它源自的服务器)。

  2. 将文件放入 .jar 文件中并使用小程序 ClassLoader 访问它们。

解决方案 2 的示例(如果路径相对于 jar 的根目录):

InputStream is = getClass().getClassLoader()
.getResourceAsStream("res/dictionary.txt");

或者(如果路径是相对于类文件的目录):

InputStream is = getClass().getResourceAsStream("res/dictionary.txt");

关于java - 无法从服务器上的java小程序读取相关文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com