2016-05-23 72 views
0
public void readFile() 
{ 
    while(fileReader.hasNext()) 
    { 
     String blankClarification1 = fileReader.next();//Why Java Why?! 
     Carthage_Independent_Status = Integer.parseInt(fileReader.next()); 
     String blankClarification2 = fileReader.next(); 
     Carthage_Stability = Integer.parseInt(fileReader.next()); 
     String blankClarification3 = fileReader.next(); 
     Carthage_Ruler_Name = fileReader.next(); 

基本文本文件解釋。然而,這是低效率和耗時我的問題是?有沒有一種方法可以從文本文件中獲取變量的名稱,然後使它們的值等同於變量不必在解釋中明確命名(而是先聲明),然後讀者將變量名稱並將其設置爲等於它旁邊的值?解釋文本文件並將字符串用作變量

下面是一個文本文件

Carthage_Independent_Status 0 
Carthage_Stability 100 
Carthage_Ruler_Name Dido 

當然還有更多在它不過是有可能有這樣的事情?

String Variable = fileReader.next(); 
String Value = fileReader.next(); 
Variable = Value; 

有沒有一種方法以這樣的方式來設定此,它認爲變量而不是作爲一個字符串,但作爲一個變量,從而節省時間和精力?我已經看到一些關於通過映射將字符串變成變量的線程,但我沒有試過的東西已經達到了預期的效果。我相信在PHP中有這樣的方法,但這又是Java。如果需要澄清這個問題,我會很樂意承認,我自己在表達自己時很自然。

+0

反射?真的,我想說的只是'反思? '但那不是足夠的人物,所以我輸入了所有這些。 – nicomp

+0

只需使用地圖。 – shmosel

+0

@shmosel這將如何完成?基於這個例子,我已經嘗試過在同一個問題之前Map dogMap = new HashMap (); dogMap.put(「Fido」,新狗(「Fido」)); Dog myPet = dogMap.get(「Fido」);然而,我還沒有取得任何成功,你可以定義什麼狗,dogMap和Fido會代表什麼? –

回答

0

問題:有沒有一種方法可以從文本文件中獲取變量的名稱及其值,然後使它們具有等價性,以便變量不必在解釋中具體指定(而是早些時候宣佈)和閱讀器採用的變量名,並將其等同於價值旁邊`

是的,你可以使用Map<String, String>

問:有沒有辦法在設定該這樣一種方式,它看到變量不是一個字符串,b ut作爲一個變量,從而節省時間和精力?

1.如果你的變量基本上是原始類型或字符串,你可以有一些util方法。像

class Configuration { 
    Map<String, String> properties; // load your files into this map at first 

    public String get(String key) { // if the value is string type 
    return properties.get(key); 
    } 

    public float getFloat(String key) { // if the value is float type 
    if (properties.containsKey(key)) { 
     return Float.parseFloat(properties.get(key)); 
    } else { 
     return DEFAULT_VALUE; // the default value of the key "key" 
    } 
    } 

    public int getInt(String key) { // if the value is int type 
    } 
} 

有一個生產例子,看看hadoop-common's Configuration.java

  • 如果你想更復雜類型的變量保存到文件,從文件中讀取變量,你需要序列化/反序列化工具包。 gson library將是一個好的開始。你可以預先定義你的配置類,只需將你的配置保存爲json文件,然後從文件中加載配置類。
  • 相關問題