2016-04-05 8 views
0

私のコードは最適ではなく、私が書いた方法よりも、自分がしようとしていることを書く良い方法があります。javaでファイルを読み込んで配列リストを制御する

情報をアレイリストに挿入するようにリーダーを設定しようとしています。今、私の問題は、配列リストにオブジェクトを一度しか追加する方法が見つからないということです。ファイルの最後のオブジェクトが、arrayListの空白を埋めています。

public void readCharacterFile() { 

    String fileName = "C:/Users/brenton.reittinger/Desktop/characters.txt"; 
    String line = null; 
    String fileContent = ""; 

    try { 
     FileReader in = new FileReader(fileName); 

     BufferedReader bufferReader = new BufferedReader(in); 

     while((line = bufferReader.readLine()) != null) { 
      fileContent = fileContent + line; 
     } 

     bufferReader.close(); 

    } catch(Exception e){ 
     e.printStackTrace(); 
    } 

    Character character = new Character(); 
    Attributes attribute = new Attributes(); 

    character.setAttribute(attribute); 

    String[] file = fileContent.split(":"); 

    int count = 0;   

    for (String fileSection : file) { 
     if (fileSection.length() > 0) { 
      if(count == 5) { 
       character.getAttribute().setLevel(Integer.parseInt(fileSection)); 
       count++; 
      } 
      if(count == 4) { 
       character.getAttribute().setExperience(Integer.parseInt(fileSection)); 
       count++; 
      } 
      if(count == 3) { 
       character.getAttribute().setHealth(Integer.parseInt(fileSection)); 
       count++; 
      } 
      if(count == 2) { 
       character.getAttribute().setAttack(Integer.parseInt(fileSection)); 
       count++; 
      } 
      if(count == 1) { 
       character.setRace(fileSection); 
       count++; 
      } 
      if(count == 0) { 
       character.setName(fileSection); 
       count++; 
      } 
     }   
    } 
    user.addCharacterToList(character); 
} 
+0

ご質問はありますか?同じ文字を2回追加するのを避けるには? – Dimi

+1

'(配列)List.contains'と' Set'を参照してください。 – ControlAltDel

+0

'Files.readAllLines'は、ファイルを読むのに役立つコードです。違いはありません – 3kings

答えて

-1

代わりにSetを使用しないのはなぜですか?各オブジェクトインスタンスが1回だけ出現することを保証します。

関連する問題