2011-01-18 2 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-файл, содержащий двойной, и я хочу сохранить его как double. Вместо этого он хочет строку. Я делаю это неправильно или есть только несколько шагов, которые мне нужно добавить?Чтение URL-адреса, сохранение данных как двойное?

+1

интересно, почему он не может украсить url.openStream() с помощью DataInputStream и использовать readDouble()? –

ответ

3

Ну, вам нужно разобрать строку в двойной. Например, используя Double.parseDouble. Я должен указать, что строка версии не похожа на отличную идею для хранения в виде двойной ... вместо этого вы можете использовать вместо нее BigDecimal. Удваивает, как правило, лучше для «реальных» физических значений, таких как расстояния - не «искусственные» значения, такие как номера версий. Я не думаю, что даже использовал бы BigDecimal, если честно ... это не похоже на то, что номера версий обычно обрабатываются так же, как «нормальные» числа.

Рассматривали ли вы создание своего собственного типа для представления номера версии?

+0

Интересно, почему я не смотрел в java-документах о разборе парсеров. Большое спасибо, я запомню, чтобы проверить API, прежде чем предположить, что я застрял! ^.^ – Kyle

2

Вы можете разобрать строку вы получили: Double.parseDouble(inputLine.trim())

Но, на самом деле, я не думаю, что версии должны быть двойники. В вашем конкретном случае, сегодня это может быть так, но оно может легко измениться. Вот некоторые примеры популярных "versionings", которые не могут быть представлены в виде удваивается:

3.0.5
2.1.GA
1,5-ПАНОРАМА
0.8b

Итак, я d предложите оставить эту строку.

+0

Вы делаете хороший момент. Может быть, я должен оставить его в виде строки. – Kyle