(Java)如何在线读取文件中的整数?

时间:2016-10-14 20:47:56

标签: java downloading

我正在尝试为游戏制作更新检查程序,它会在线从文件中读取最新的更新版本,并通知用户该版本是否高于当前版本的游戏。

版本文件在Dropbox上完全公开,仅包含数字2。

这就是我目前正在尝试的事情:

public static int getVersionFromCloud()
{
    int version = -1;

    try
    {
        URL link = new URL("https://www.dropbox.com/s/1jeuy4v1w46ccn6/launcher.txt");
        BufferedReader reader = new BufferedReader(new InputStreamReader(link.openStream()));

        System.out.println(reader.readLine());
        version = Integer.parseInt(reader.readLine());

        reader.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

    return version;
}

但是我收到了这个错误:

// From System.out.println()
<!DOCTYPE html><html lang="en" xmlns:fb="http://ogp.me/ns/fb#" xml:lang="en" class="" xmlns="http://www.w3.org/1999/xhtml">
// Error
Exception in thread "main" java.lang.NumberFormatException: For input string: "<head><script type="text/javascript" nonce="CYFUWuYzTUo6rNiFN6N4">"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at data.io.Util.getVersionFromCloud(Util.java:21)
at data.LauncherBasic.updateFields(LauncherBasic.java:104)
at data.LauncherBasic.<init>(LauncherBasic.java:55)
at data.LauncherBasic.main(LauncherBasic.java:43)

我也尝试了this,但它总是返回null。

1 个答案:

答案 0 :(得分:0)

问题

当你打开你的Dropbox网址时,你没有获得文件内容,而是获取了dropbox page html代码,所以你尝试使用html标签(<head><script type="text/javascript" nonce="CYFUWuYzTUo6rNiFN6N4">)转换为数字时失败了。

解决方案

将网址更改为https://dl.dropboxusercontent.com/s/1jeuy4v1w46ccn6/launcher.txt(就像您提供的链接中描述的那样),它会正常工作,您将获得2

URL link = new URL("https://dl.dropboxusercontent.com/s/1jeuy4v1w46ccn6/launcher.txt");