如何获取java applet中的文件列表?

时间:2012-01-10 05:14:46

标签: java applet readfile

我正在开发一个Java协作项目,并认为将它作为嵌入在网页中的applet最容易,然后每个人都可以添加他们的子类(奖励,敌人等)进入各自的文件夹。为了使这项工作,我希望applet检查网站上的文件夹,收集每个文件夹中的文件名,然后将这些类的名称放入一个数组中,因为它们都是从这里随机生成的。

我最初尝试制作一个File对象并调用.listFiles()将其放入一个数组中,但是文件对象无法识别我给它的路径getCodeBase().toString()+"bonus.txt",所以我试着把它的名字放到所有将在.txt文件中的文件夹中的类,打开文件,然后只读取每一行。这可以在eclipse中工作,但是当我将.class和.txt文件上传到网站时,我收到了权限错误,因此我将该类放入.jar,自签名并再次上传,但applet无效它只是冻结了。
任何时候我没有文件retreval语句,在.jar内外,applet就可以正常工作,但如果我有这些代码行,它会冻结或出错。

我试过new scanner(new file("bonus.txt")); 通过谷歌发现类似问题的缓冲读者的不同变体,以及通过File类加载地址的不同方式,但没有一种方法有效。

所有我一直试图让applet做到这一点只是加载.txt文件(与.class文件在同一目录中),读取内容并在applet中打印它们,但没有成功。非常感谢你能指出我正确的方向。

1 个答案:

答案 0 :(得分:3)

由(受信任的)applet建立的File将指向最终用户计算机的文件系统上的某个位置(可能不存在)。 File个对象永远不会指向服务器,这不是它们的工作方式。

要从applet访问资源,通常会使用URL。 E.G。

URL urlToList = new URL(getCodeBase(), "bonus.txt");
Scanner scanner = new Scanner(urlToList.openStream());

请注意,这些行都不需要对applet进行签名/信任。