1

您好,我想读出一个位于服务器上的文件。我通过参数获取文件的路径

<PARAM name=fileToRead value="http://someserver.de/file.txt">

当我现在启动小程序时,会发生以下错误

引起:java.lang.IllegalArgumentException:URI 方案不是“文件”

有人可以给我一个提示吗?

BufferedReader file;
                        String strFile = new String(getParameter("fileToRead"));

                        URL url = new URL(strFile);
                        URI uri = url.toURI();
                        try {

                            File theFile = new File(uri);
                            file = new BufferedReader(new FileReader(new File(uri)));

                        String input = "";

                            while ((input = file.readLine()) != null) {
                               words.add(input);
                            }
                        } catch (IOException ex) {
                          Logger.getLogger(Hedgeman.class.getName()).log(Level.SEVERE, null, ex);
                        } 
4

3 回答 3

3
 File theFile = new File(uri);

不是正确的方法。您访问的是 URL,而不是文件。

您的代码应如下所示:

try
{
 URL url = new URL(strFile);
 InputStream in = url.openStream();
 (... read file...)
 in.close();
} catch(IOException err)
{
 (... process error...)
}
于 2009-02-22T10:08:16.943 回答
1

正如错误所暗示的,您正在尝试作为文件打开,它不遵循 file:// uri。

如果你想使用 URL,我建议你只使用 url.openStream() 应该更简单。

于 2009-02-22T10:06:01.080 回答
1

您将需要对 applet 进行签名,除非该文件是从 applet 所在的同一服务器/端口访问的。

于 2009-02-22T17:06:16.797 回答