我有一個文件有90個對象,每個對象有20個屬性。文件的每一行都有1個對象,所以我需要讀取一行並將所有這20個屬性分開,以便我可以填充對象中需要的所有信息,然後將該對象放入對象數組中。如何讀取文件並將其放入一個對象數組中?
我在SO上發現了一個問題,它做了類似的事情,但他們每行有一個單獨的屬性,所以他們只需要讀一行並將該行放入每個屬性中,我的問題是我在一行中有20個屬性,我怎麼能分開他們?
編輯1:
感謝大家,幫助,但現在我得到了另一個問題。 我的代碼如下:
public void loadGang(){
String currentline;
Gang g =new Gang();
String[] result= new String[50];
BufferedReader info;
try {
info = new BufferedReader(new FileReader("Gangs.txt"));
for(int i=0;i<90;i++){
currentline= info.readLine();
result=currentline.split(" ");
g.setName(result[0]);
g.setHire(Integer.parseInt(result[1]));
g.setUpkeep(Integer.parseInt(result[2]));
g.setCombat(Integer.parseInt(result[3]));
g.setDefense(Integer.parseInt(result[4]));
g.setTechlevel(Integer.parseInt(result[5]));
g.setStealth(Integer.parseInt(result[6]));
g.setDetect(Integer.parseInt(result[7]));
g.setChaos(Integer.parseInt(result[8]));
g.setControl(Integer.parseInt(result[9]));
g.setHeal(Integer.parseInt(result[10]));
g.setInfluence(Integer.parseInt(result[11]));
g.setResearch(Integer.parseInt(result[12]));
g.setStrenght(Integer.parseInt(result[13]));
g.setBlade(Integer.parseInt(result[14]));
g.setRange(Integer.parseInt(result[15]));
g.setFighting(Integer.parseInt(result[16]));
g.setMarts(Integer.parseInt(result[17]));
listgang.add(g);
System.out.println(listgang.get(i).getName());
}
info.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我有 「異常線程 」main「 java.lang.ArrayIndexOutOfBoundsException:1 在Game.loadGang(Game.java:30)」 所以這個工程7行的文本文件,但它停在那裏,我認爲有一些問題與「currentline = info.readLine();」一部分,因爲我試圖把一個打印那裏,所以我可以看到,如果這是工作,但當它到了那一行它沒有做任何輸出,所以也許問題在那裏?它應該是一個數組越界的問題,但我看不到在哪裏,任何意識?
編輯2: 我猜這個文件存在問題,或者是因爲我試圖通過檢查結果的長度來檢查是否發生了拆分,並且我看到在該行中輸出爲1,所以發生了某些事情那條線...
編輯3: 我做到了!文件上有一個空白行或文件,我在記事本中看不到,但是我打開了寫字板的.txt文件,我剛剛刪除了該行,現在它工作正常。
到目前爲止你做了什麼?你能舉一些例子嗎?請詢問更具體的問題。 – Turing85
嘿,你知道該怎麼做。但這不是代碼請求的地方。 –
如果我知道該怎麼辦我不會問,因爲這是浪費時間... 我檢查了這個帖子http://stackoverflow.com/questions/23145416/creating-objects-via-txt-file-into -an-array-in-java,我需要做類似的事情,但他每行都有一個屬性,並且我將所有屬性都放在一行中,我只需要有人告訴我一種方法或者我需要的東西來分離東西當我閱讀信息。或者我應該只讀一整行到一個字符串,然後從字符串中獲取我需要的屬性?對不起,如果我不是很好地解釋自己,但我對java還不瞭解很多 – I3ryI3e