Lesen Sie eine Textdatei zeilenweise ein und speichern Sie ein Objekt in das array
Den code habe ich derzeit erstellt, speichert die erste Zeile der text-Datei, erstellt eine neue Fahrzeug-Objekt und fügt es in das array an der ersten Stelle von null und speichert die gleiche Zeile, in jeder null-Wert in das array. Ich brauche es, um in der Lage sein:
Speichern Sie den Inhalt der ersten Zeile, und speichern Sie dann eine neue Fahrzeug-Objekt an Erster Stelle im array null ist. Dann wiederholen Sie, bis es keine Zeilen mehr.
Ich glaube, es ist ein problem mit meiner for-Schleife.
Hinweis - ich bin erforderlich für die Verwendung von Arrays anstelle von ArrayList
public void addVehicle(Vehicle[] Honda) throws FileNotFoundException
{
if(canAddVehicle() == true)
{
for(int i = 0; i < vehicles.length; i++)
{
if(vehicles[i] == null)
{
Scanner reader = new Scanner(file);
Honda[i] = new Vehicle();
Honda[i].readRecord(reader);
vehicles[i] = Honda[i];
reader.close();
}
}
System.out.println("Vehicle Added!");
}
else
{
System.out.println("You can not add more than 4 vehicles.");
}
}
Fahrzeug-Klasse:
public void readRecord(Scanner reader)
{
setMake(reader.next());
setModel(reader.next());
setYear(reader.nextInt());
setvin(reader.next());
setValue(reader.nextDouble());
setMilesDriven(reader.nextInt());
setLastOilChange(reader.nextInt());
}
Daten-Datei:
Hyundai Sonata 2010 ABC236347NM2N2NW2 18455.34 8765 7567
Chevy Blazer 1998 1234H32343LMN3423 29556.65 38559 38559
//EDIT\
Constraits: ich kann nicht irgendeine neue öffentliche Methoden oder Konstruktoren, und ich kann keine weitere Klasse-level-Daten
- Ihr solltet Euch zu diesem Thema - stackoverflow.com/questions/8410050/...
- sorry, ich habe schon seit 9 Stunden versucht nun, dies zu beenden und es ist wirklich schwierig, denke sogar mehr. brauche ich nur dieses zu erhalten getan
- Sie post haben, den Inhalt der Daten-Datei, so können wir nur empfehlen.
- Bearbeitet meine post zu zeigen
- Werfen Sie einen Blick auf Jon ' s post (elegante Lösung). Jedoch, in Ihr code-snippet, Sie haben sich zu bewegen, Scanner reader = new Scanner(Datei); vor der Schleife und die Leser.close();* nach der Schleife.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist looping innerhalb die
readRecord
Methode, auch wenn das bedeutete, zu speichern nur ein Objekt, nicht wahr?Ist es möglich, dass Sie können entfernen Sie einfach das
while
loop - obwohl, dann setzt auf dieaddVehicle
Anrufer wissen, wie viele Einträge sind in der Datei.Scheint es eher wahrscheinlich, dass Sie haben eine Methode, um alles zu Lesen aus einer Datei, füllen einer
List<Vehicle>
- und Rückgabe. Zum Beispiel:addVehicle
ein.) Es scheint grundsätzlich seltsam angesichts der Signatur und deren Verhalten.Fand meine Lösung!