Java 读取服务器上的文件
我有一个小程序,它的部分设计目的是(仅)读取文本文件,并基于此制作内容。在我的小程序中,这是我的“读取”方法,用于读取文件:Java 读取服务器上的文件,java,applet,file-permissions,Java,Applet,File Permissions,我有一个小程序,它的部分设计目的是(仅)读取文本文件,并基于此制作内容。在我的小程序中,这是我的“读取”方法,用于读取文件: public void read (String file1) throws IOException { str.removeAllElements (); // str is a global vector BufferedReader dia = new BufferedReader (new FileReader (file1)); for
public void read (String file1) throws IOException
{
str.removeAllElements (); // str is a global vector
BufferedReader dia = new BufferedReader (new FileReader (file1));
for (;;)
{
strc = dia.readLine ();
if (strc == null)
break;
str.add (strc);
}
}
当我在JVM中运行它时,这很好,但是当我将它联机时,我想要访问的文件无法访问,即使它们托管在同一个服务器和文件夹上
我的小程序的HTML如下所示:
<applet
codebase = "[the url that hosts my class and text files]"
code = "[my class file].class"
width = ###
height = ###>
</applet>
如果有人能帮忙,那就太棒了 小程序在web浏览器中运行。因此,在下载小程序的用户的计算机上。因此,即使您要查找的文件存在于用户的计算机上,您也无法读取它们,因为您无法访问internet上的用户的文件系统。在服务器端读取本地文件。因此,在您的情况下,您可能需要一个servlet而不是applet。我怀疑这里真正的问题是使用
java.io.File
。暂时搁置服务器/客户端,沙盒小程序根本无法建立文件。但是稍微扩展一下,一个受信任的小程序可以建立一个文件,但只能指向客户机本地驱动器上的文件。一个文件可以永远指向服务器,它们就是不能这样工作
所以这就导致了。小程序访问资源的正确方法是通过URL
。Java大量使用URL,甚至用于访问JAR中的类
沙盒小程序可以建立一个URL,指向部署它的服务器
至于如何形成该URL。URL可以相对于(JAR/类的位置)或(HTML的位置)形成。我知道这主要用于访问本地系统文件,我需要访问服务器上的文件(与我的.class文件位于同一目录中…除非从服务器读取的文件与本地系统文件类似,否则我认为我不需要执行本文中提到的任何项目。您需要通过url通过http协议访问该文件
AccessControlException
access denied ("java.io.FilePermission" "dial1.txt" "read")