从URL读取,将数据存储为double?

时间:2011-01-18 22:23:07

标签: java

public static void getClientUpdate() {
    try {
        String inputLine;
        double version = 0;
        URL url = new URL("http://ds-forums.com/client/version.txt");
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
        version = inputLine;
        System.out.println("The version is: " + version);
    } catch (Exception x) {
        System.out.println(x);
    }
}

这听起来真的很愚蠢,但我有一个包含double的txt文件,我想将它保存为double。相反,它想要一个字符串。我做错了还是只需要添加几个步骤?

3 个答案:

答案 0 :(得分:3)

好吧,你需要将字符串解析为double。例如,使用Double.parseDouble。我应该指出,版本字符串听起来不是一个好主意存储为双...你可能想要考虑使用BigDecimal。对于“真实世界”物理值(例如距离)而言,双打通常更好 - 而不是诸如版本号之类的“人为”值。我认为我甚至不会使用BigDecimal来表示诚实......这并不是说版本号通常与“普通”数字的处理方式相同。

您是否考虑过创建自己的类型来表示版本号?

答案 1 :(得分:2)

您可以解析获得的字符串:Double.parseDouble(inputLine.trim())

但事实上,我认为版本不应该是双打的。在您的特定情况下,今天可能就是这种情况,但它很容易改变。以下是流行“版本”的一些示例,不能表示为双打:

  

3.0.5
  2.1.GA
  1.5快照
  0.8b

所以,我建议留下一个字符串。

答案 2 :(得分:1)

Double.parseDouble(string)就是您所追求的目标。