2011-01-18 9 views
0
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); 
    } 
} 

これは本当に馬鹿に聞こえますが、私はダブルを含むtxtファイルを持っており、ダブルとして保存したいと思います。代わりに文字列が必要です。私はこれを間違ってやっていますか?追加する必要があるいくつかのステップがありますか?URLから読み込み、データを倍精度で保存しますか?

+1

なぜ彼はDataInputStreamでurl.openStream()をデコレートできず、readDouble()を使用しているのでしょうか? –

答えて

3

文字列を2重に解析する必要があります。たとえば、Double.parseDoubleを使用します。私は、バージョン文字列がダブルとして格納するための素晴らしいアイデアのようには聞こえないと指摘しておきます... BigDecimalを代わりに使用することを検討してください。ダブルスは一般に、距離などの「現実世界」の物理的価値にとってはより良い - バージョン番号などの「人工的な」値ではない。私は正直言ってBigDecimalを使うつもりはないと思う...バージョン番号は通常 "普通"の数字と同じように扱われるのではない。

バージョン番号を表す独自のタイプを作成することを検討しましたか?

+0

私はなぜ私はJavaのドキュメントでダブルスを解析するのを見ていないのだろうかと思う。どうもありがとうございます。私が立ち往生していると仮定する前に、APIをチェックアウトすることを覚えています! ^。^ – Kyle

1

Double.parseDouble(string)はあなたの後です。実際に、私はバージョンがダブルスでなければならないと思う、Double.parseDouble(inputLine.trim())

しかし:

2

あなたが取得した文字列を解析することができます。あなたの特定のケースでは、今日はこれが当てはまるかもしれませんが、簡単に変更することができます。

3.0.5
2.1.GA
1.5-SNAPSHOT
0.8b

私は「:だから、ここでダブルスのように表すことができない人気の "versionings"、のいくつかの例がありますdこれを文字列のままにすることをお勧めします。

+0

あなたは良い点を作っています。たぶん私はそれを文字列として残すべきでしょう。 – Kyle

関連する問題