Java url.openStream()无法在某些计算机上运行

时间:2014-05-30 04:14:16

标签: java url

我正在libdgx中制作一个游戏并在一个文件中在线存储一个高分列表。我的一台计算机能够在线访问该文件,而连接到同一路由器的另一台计算机则无法访问该文件。我试过关闭防火墙,但它没有帮助。可能是造成这个问题的原因是什么?

    try {

    URL url = new URL("ftp://.............highscores.txt");

    InputStream in = url.openStream();
    java.util.Scanner s = new java.util.Scanner(in).useDelimiter(" ");
    for(int i=0;i<5;i++)
    {
        scores[i] = s.nextInt();
    }
    for(int i=0;i<5;i++)
    {
        names[i] = s.next();
    }
    }

    catch(java.io.IOException e){}

这是堆栈跟踪

java.net.SocketException: Permission denied: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at sun.net.ftp.impl.FtpClient.readServerResponse(FtpClient.java:421)
at sun.net.ftp.impl.FtpClient.readReply(FtpClient.java:498)
at sun.net.ftp.impl.FtpClient.issueCommand(FtpClient.java:533)
at sun.net.ftp.impl.FtpClient.issueCommandCheck(FtpClient.java:544)
at sun.net.ftp.impl.FtpClient.openPassiveDataConnection(FtpClient.java:607)
at sun.net.ftp.impl.FtpClient.openDataConnection(FtpClient.java:710)
at sun.net.ftp.impl.FtpClient.getFileStream(FtpClient.java:1284)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:428)
at java.net.URL.openStream(URL.java:1037)

1 个答案:

答案 0 :(得分:0)

这一行

catch(java.io.IOException e){}

意味着您正在吞咽您的代码可能抛出的任何异常。

至少,这段代码应该是

catch(java.io.IOException e)
{
  e.printStackTrace();
}

但最好是,您应该使用日志框架并将其注销。

获得日志后,请更新您的问题。否则,还有很多事情要做。