我正在尝试为游戏制作更新检查程序,它会在线从文件中读取最新的更新版本,并通知用户该版本是否高于当前版本的游戏。
版本文件在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。
答案 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");