Hallo Forum,
ich möchte gerne in meine Java-Anwendung eine unbestimmte Anzahl an Files laden. Wie bekomme ich die am besten abgespeichert?
Zur Erklärung aktuell habe ich die Anzahl mit 5 Dateien begrenzt, ist aber leider keine Anforderung.
Und es läuft wie folgt ab:
1.Konsolen Ausgabe "Gib den Pfad zur Datei an:"
2.Eingabe des Pfades
3.Konsolen Ausgabe "Gib den Pfad zur Datei an:"
....
und nach der 5ten ist halt schluss, kann ich Dateien in ArrayList speichern, oder ist es besser, wenn ich nur den Pfad speichere (was ja in ArrayListen geht) und die Dateien erst lade, wenn Sie im Programm wirklich gebraucht werden?
Entweder du fragst am Anfang nach der Anzahl Pfade, nach jedem "Wollen Sie nochmals ..." oder lässt einen leeren Wert als "Arbeit beendet" zählen. Auf alle Fälle lässt sich alles mit Arrays und Listen bewältigen. Eine List (z.B. ArrayList) ist zu bevorzugen.
Am besten benutzt du einfach eine Schleife und prüfst die Benutzereingabe einfach auf eine Abbruchbedingung, wie zum Beispiel "exit" o.ä.
Ich würde nicht alle Dateien in einer ArrayList speichern, da du somit den Speicher zumüllst und es dort zu engpässen kommen kann. Man weiss ja eben nicht, wie viele Dateien es werden.
Hallo,
also ich würde die Pfade der Dateien, die du haben willst in einer String-Liste (List<String>) speichern und die Eingabe schlicht und einfach über eine Schleife laufen lassen, in der du als Abbruchbedingung einen String definierst. Also z.B. bei Eingabe von exit die Schleife beenden und fertig. Und bei jedem Schleifendurchlauf speicherst du dir die Pfade die eingegeben wurden in ein neues Listenelement (also ein neues zur Liste hinzufügen).
Grüße,
Schnitzlpizza
Okay, vielen Dank für eure Antworten, ich muss letztendlich jetzt erstmal sehen was zu realisieren ist. Ich denke ich werde die Dateien erst nur als Pfad speichern und dann einlesen, wenn sie gebraucht werden, denn das sind maximal 5 und diese sind auch relativ groß. geht um eine verschneidung von shapedateien(Gis-dateien).
vielen dank für all eure Hilfe.
Hängt natürlich von der Anwendung ab,
aber ich persönlich fände es besser gleich das File-Objekt zu erstellen und zumindest so Sachen wie isFile(), canRead() abzufragen. Vorteil wäre das du dann gleich auf "Falscheingaben" reagieren könntest. Soviel langsamer ist das nicht, da du ja eigentlich nur den "file-pointer" erstellt und nicht gleich den ganzen Inhalt einliest. Aber natürlich braucht der IO etwas Zeit, aber das brauchen Konsolen-Ein/Ausgaben auch.