我正在用 Java 开发一个协作项目,我认为将它作为一个小程序嵌入到网页中是最简单的,然后每个人都可以在创建它们时添加他们的子类(奖励、敌人等)到各自的文件夹中。为了完成这项工作,我希望小程序检查网站上的文件夹,收集每个文件夹中的文件名,然后将这些类名放入一个数组中,因为它们都是随机生成的。
我最初尝试制作一个 File 对象并调用 .listFiles() 将其放入一个数组中,但是文件对象无法识别我给它的路径,getCodeBase().toString()+"bonus。 txt"
,所以我尝试将所有类的名称放在一个文件夹中的 .txt 文件中,打开文件,然后读取每一行。这在 Eclipse 中可行,但是当我将 .class 和 .txt 文件上传到网站时,出现权限错误,所以我将类放入 .jar 中,自行签名并再次上传,但小程序无法运行, 它只是卡住了。
任何时候我没有文件检索语句,无论是在 .jar 中还是在 .jar 之外,小程序都可以正常工作,但如果我有这些代码行,它就会卡住或出错。
我试过 new scanner(new file("bonus.txt"));
通过谷歌找到类似问题的缓冲阅读器的不同变体,以及通过 File 类加载地址的不同方式,但都没有奏效。
到目前为止,我一直试图让 applet 做到这一点只是加载一个 .txt 文件(与 .class 文件在同一目录中),读取内容并在 applet 中打印它们,但没有成功。如果您能指出正确的方向,我将不胜感激。
最佳答案
File
由(受信任的)applet 建立,将指向最终用户计算机文件系统上的一个位置(该位置可能不存在)。 File
对象永远不会指向服务器,这不是它们的工作方式。
要从小程序访问资源,您通常会使用 URL。例如
URL urlToList = new URL(getCodeBase(), "bonus.txt");
Scanner scanner = new Scanner(urlToList.openStream());
请注意,这两行都不需要对小程序进行签名/信任。
关于java - 如何获取 Java 小程序中的文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798856/