Um Sie wissen zu lassen, dass dies eine Aufgabe für meine Klasse ist, frage ich nur um ein wenig Hilfe damit. Die Kurzform der Zuweisung lautet:Brauchen Sie Hilfe, versuchen, eine Datei zu lesen und füllen Sie ein Array von Objekten mit ihren Parametern in Java
Schreiben Sie eine Anwendungsklasse, die eine Datei liest (aus der Befehlszeile) und füllt ein Array vom Typ Fahrzeug [] mit neuem Fahrzeug (params), neues Auto (params), neues amerikanisches Auto (params) neues ausländisches Auto (params), neuer LKW (params), neues Fahrrad (params), usw.
Dieses ist, was ich bis jetzt habe (ich habe bereits einzelne Klassen für jedes geschrieben Objekte, die alle das Fahrzeug verlängern):
public class n01029506{
public static void main(String[] args) throws FileNotFoundException{
Scanner input = new Scanner(new File(args[0]));
ArrayList<Vehicle> list = new ArrayList<>();
while(input.hasNext()){
if(input.nextLine().equals("vehicle")){
String name = input.nextLine();
String address = input.nextLine();
String phone = input.nextLine();
String email = input.nextLine();
list.add(new Vehicle(name, address, phone, email));
}
}
System.out.println(list.get(0));
}
}
Die Ausgabe dieses Codes ist ein Array von Objekten namens Fahrzeug aus t Die Datei, die ich lese. Das Problem, das ich habe, ist, wenn ich eine andere else if-Anweisung es kompiliert, aber ich bekomme einen Laufzeitfehler.
if(input.nextLine().equals("vehicle")){
String name = input.nextLine();
String address = input.nextLine();
String phone = input.nextLine();
String email = input.nextLine();
list.add(new Vehicle(name, address, phone, email));
}else if(input.nextLine().equals("car")){
String name = input.nextLine();
String address = input.nextLine();
String phone = input.nextLine();
String email = input.nextLine();
boolean convert = input.nextBoolean();
String color = input.nextLine();
list.add(new Car(name, address, phone, email, convert, color));
}
Was ich das Programm brauche, ist zu tun durchlaufen und sobald es eine Zeile aus der Datei liest - ob ein Auto, Fahrzeug, etc. - es schafft und Objekt und speichert es in der Anordnung. Ich bin mir nicht sicher, wie das Programm richtig funktioniert. Wenn mir jemand in die richtige Richtung helfen könnte, würde ich das sehr schätzen.
Anruf nextline() ** einmal **, speichern Sie das Ergebnis in einer Variablen und vergleichen Sie diese Variable mit "Fahrzeug", "Auto" usw. nextLine() liest die nächste Zeile ** und bewegt sich ** zum Anfang des nächsten. Sie sollten das wirklich selbst herausfinden können, indem Sie Ihren Debugger verwenden oder einfach System.out.println() - Traces in den Code einfügen. –
Können Sie ein Beispiel der Eingabedatei posten? Wie wir jetzt schreiben, müssen wir annehmen, dass jeder Parameter in einer eigenen Zeile geschrieben ist. Wenn das nicht der Fall ist, würde das Ihr Programm schnell brechen. – NAMS
@JBNizet Danke, ich verstehe jetzt. Ich bin völlig durchgeknallt davon geworden, wie sonst die ifs funktioniert und die nächsten Aussagen. –