Ich habe eine Datei mit 90 Objekten, jedes Objekt hat 20 Attribute. Jede Zeile der Datei hat 1 Objekt, also muss ich eine Zeile lesen und alle diese 20 Attribute trennen, so dass ich alle benötigten Informationen in ein Objekt füllen und dieses Objekt in ein Array von Objekten einfügen kann.Wie lese ich eine Datei und lege sie in ein Array von Objekten?
Ich habe eine Frage hier auf SO gefunden, die etwas Ähnliches getan hat, aber sie hatten nur ein Attribut pro Zeile, also mussten sie nur eine Zeile lesen und diese Zeile in jedes Attribut einfügen, mein Problem ist, dass ich 20 Attribute in einer Zeile habe , wie kann ich sie trennen?
EDIT 1:
Vielen Dank für alle, die jetzt geholfen, aber ich zu einem anderen Problem. mein Code ist folgende:
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();
}
}
Ich habe "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 bei Game.loadGang (Game.java:30)" So funktioniert dies für 7 Zeilen der Textdatei, aber es hört auf, ich denke, es gibt ein Problem mit der "currentline = info.readLine();" Teil, weil ich versucht habe, einen Druck dort zu setzen, also kann ich sehen, ob das funktionierte, aber als es zu dieser Linie kam, hat es keine Ausgabe so gemacht, vielleicht ist das Problem dort? Es sollte ein Problem eines Arrays außerhalb der Grenzen sein, aber ich kann nicht sehen, wo, irgendwelche Ideas?
EDIT 2: Ich denke, es gibt ein Problem in der Datei oder etwas, weil ich versuchte zu überprüfen, ob der Split passiert, indem Sie die Länge der Ergebnisse überprüfen, und ich sehe, dass in dieser Zeile die Ausgabe 1 war, so etwas passiert diese Linie ...
EDIT 3: Ich tat es! Es gab eine leere Zeile oder etwas in der Datei, die ich nicht im Editor sehen konnte, aber ich öffnete die .txt-Datei das WordPad und ich löschte gerade diese Zeile und jetzt funktioniert es gut.
Was hast du bisher gemacht? Kannst du ein paar Beispiele geben? Bitte stellen Sie spezifischere Fragen. – Turing85
Hey Mann, du weißt was zu tun ist. Dies ist jedoch nicht der richtige Ort für Code-Anfragen. –
Wenn ich wüsste, was ich tun würde, würde ich nicht fragen, da das eine Verschwendung von Zeit ist ... Ich habe diesen Beitrag http://stackoverflow.com/questions/23145416/creating-objects-via-txt-file-into überprüft -an-array-in-java, und ich muss etwas ähnliches tun, aber er hat ein Attribut pro Zeile und ich habe alle meine Attribute in einer Zeile, ich brauche nur jemanden, der mir eine Methode oder etwas sagt, das ich trennen muss wenn ich die Info lese. Oder sollte ich nur eine ganze Zeile zu einem String lesen und dann Sachen aus dem String zu den Attributen nehmen, die ich brauche? Es tut mir leid, wenn ich mich nicht gut erkläre, aber ich weiß nicht viel über Java noch – I3ryI3e