Input/Output Zeilen aus txt-datei in Java-Liste einfügen

denny_

Mitglied
Hallo zusammen.

Ich bräuchte mal ein bisschen Hilfe.

Vorhaben:

Ich möchte eine Telefonliste aus einer Textdatei auslesen...
Code:
Telefonnummer;Name;
und in eine Java Liste einfügen.

Die Oberfläche des Dialogs ist in SWING mit NetBeansIDE geschrieben.

Leider fehlt mir momentan jeglicher Ansatz, wie ich die einzelnen Zeilen auslesen soll und dann in die Liste einfügen muss...

Die markierte Zeile möchte ich dann letztendlich mit
[JAVA=90]new WahlDialog().extern = String.valueOf(jList.getSelectedValue());[/code]
an einen externen String übergeben. (Falls das so klappen sollte...)

Könnte mir hierfür eventuell jemand einen geeigneten Lösungsansatz bieten?

Grüßle denny_
 

ARadauer

Top Contributor
Mit BufferedReader zeilenweise lesen und dann mit split den String teilen...
zb
Java:
BufferedReader in = new BufferedReader(new FileReader("text.txt"));
		String zeile = null;
		while ((zeile = in.readLine()) != null) {
			String[] teile = zeile.split(";");
			System.out.println("Telefonnummer: " + teile[0]);
		}

Dann hast du mal die Werte...
 

denny_

Mitglied
Mit BufferedReader zeilenweise lesen und dann mit split den String teilen...
zb
Java:
BufferedReader in = new BufferedReader(new FileReader("text.txt"));
		String zeile = null;
		while ((zeile = in.readLine()) != null) {
			String[] teile = zeile.split(";");
			System.out.println("Telefonnummer: " + teile[0]);
		}

Dann hast du mal die Werte...

Sowas ähnliches hab ich mir bereits gedacht, aber es stellt sich mir noch die Frage, wie ich den String nur nach jedem 2. ";" splitten kann. Denn ich hab ja jeweils

Nummer;Name;
Nummer;Name;
Nummer;Name;
etc

Kann ich das dann einfach mit ner Schleife auslesen und dann in der Liste wieder zusammenbauen?
Oder muss ich die Namen in ne extra Zeile über oder unter die Nummer tun und dann splitten?

Gawain hat gesagt.:
Beschäftige dich mit InputStreams: InputStream (Java Platform SE 6) (für dich wird FileInputStream interessant sein)

Danke für den Tipp. Aber mit dem Stream (InputStreamReader und OutputStreamWriter) beschäftige ich mich schon eine ganze Weile.
Das Programm, für welches das Telefonbuch gedacht ist, greift über einen Socket auf ein Manager-Interface einer Telefonanlage zu und übergibt dieser einen Call-Orginate-Befehl (extern anrufen und nach intern durchstellen).
 
Zuletzt bearbeitet:

denny_

Mitglied
Sodala ich hab jetzt mal den FileReader so umschrieben, wie ARadauer meinte.

Java:
BufferedReader input = new BufferedReader(new FileReader("C:/Users/%User%/Desktop/telefon.txt"));

		var1 = null;
		while ((var1 = input.readLine()) != null) {
			incoming = var1.split(";");
		} 
		

		for(int j = 0; j < incoming.length; j++ ) {
			System.out.println(incoming[j]);
		}

Sprich ich lese jede Line aus und splitte beim ";".

Um zu sehen, was alles in dem "incoming"-array steht, hab ich das auf ne CMD umgeleitet.

Was mich grad tierisch verwundert, dass er mir zwar genau das aus der txt raus holt, was drin steht, aber NUR die LETZTE Zeile! Überschreibt er die anderen Zeilen? Und wenn ja, wieso?
 
S

SlaterB

Gast
wie soll man normalen Java-Code erklären,
deine Schleife Zeile 4-6 speichert eben jede neue Zeile in derselben Variable incoming, logisch dass da am Ende nur die letzte Zeile da ist,
wo soll der Rest denn sein? auf magische Weise auch in incoming irgendwo mit drin, hintereinander geschrieben?

oder vermutest du dass var1 als Vorstufe alles aufnimmt? dann wäre deine Abbruchbedingung (null) ja nie erfüllt
 

denny_

Mitglied
wie soll man normalen Java-Code erklären,
deine Schleife Zeile 4-6 speichert eben jede neue Zeile in derselben Variable incoming, logisch dass da am Ende nur die letzte Zeile da ist,
wo soll der Rest denn sein? auf magische Weise auch in incoming irgendwo mit drin, hintereinander geschrieben?

oder vermutest du dass var1 als Vorstufe alles aufnimmt? dann wäre deine Abbruchbedingung (null) ja nie erfüllt

Jetzt steh ich ehrlich gesagt auf m Schlauch.
Die Variable "incoming" ist ein String-Array. Keine normale String-Variable.

Deswegen ging ich bisher davon aus, dass er mit dem input.split(";") immer einen Wert aus der txt-datei ausliest bis zum brake ( ; ) und danach in einen neuen Array-Platz schreibt. Oder verkopf ich mich da gerade in eine falsche Richtung?

Ich bin grad am grübeln was passiert, wenn ich

[JAVA=4] while ((var1 = input.readLine()) != null) {[/code]

folgendermaßen abändere

[JAVA=4] while ((var1 = var1 + input.readLine()) != null) {[/code]

Dann müsste er ja eigentlich erst ALLE Zeilen hintereinander an die var1 anhängen und wenn input.readLine() == null, dann abbrechen.

Und als nächstes dann einfach den Split extra durchführen.

Java:
while(input.readline() != null) {
var1 = var1 + input.readLine();
}

incoming = var1.split(";");

Sollte ich vielleicht eher in die Richtung denken?

Mein Chef meinte zu mir, dass ich mir die Überlegung machen könnte den split in einen Vector zu speichern oder in ein 2D-String-Array, aber ehrlich gesagt hab ich davon noch 0 Ahnung.
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
> Oder verkopf ich mich da gerade in eine falsche Richtung?
das split splittet den String, die aktuelle Zeile,
auf keine ersichtliche Weise hat das was mit den vorherigen Zeilen zu tun, es wird sogar ein komplett neues Array-Objekt angelegt

zu Vektoren und Co. kannst du dir Ahnung anlesen, ist ein typisches Vorgehen in so einer Situation,

dass du beim Zusammenfügen von var1 nie null erhälst habe ich schon erwähnt, daneben gibts andere Probleme,
etwa fällt der Zeilenumbruch weg, Wörter werden zusammengeklebt
 

denny_

Mitglied
> Oder verkopf ich mich da gerade in eine falsche Richtung?
das split splittet den String, die aktuelle Zeile,
auf keine ersichtliche Weise hat das was mit den vorherigen Zeilen zu tun, es wird sogar ein komplett neues Array-Objekt angelegt

Sprich ich bin gerade total auf dem Holzweg.

zu Vektoren und Co. kannst du dir Ahnung anlesen, ist ein typisches Vorgehen in so einer Situation...

Na dann werde ich mich wohl oder übel mal hieran wagen müssen.

Danke trotzdem vorerst. :)
 

denny_

Mitglied
Guten Morgen zusammen...

hab mittlerweile eine Lösung für mein Problem gefunden:

Ich hab mal die ganze Splitterei und Vektoren auf die Seite gelegt und mich der Methoden des Listenelements selbst angenommen und siehe da es funktioniert.

Hier ein kleiner Lösungsansatz für Leute mit dem selben Problem:

(Wahldialog)
Java:
		Buch tele = new Buch(this, true);
		tele.setVisible(true);
		this.jTextExtern.setText( tele.reineZahl() ); // return aus reineZahl direkt an Textzeile übergeben und einsetzen

(Telefonbuchdialog)
Java:
private void formWindowOpened(java.awt.event.WindowEvent evt) {   
try{
			
		BufferedReader input = new BufferedReader(new FileReader("C:/Users/%USER%/Desktop/telefon.txt"));
		DefaultListModel model = new DefaultListModel(); // neues model für Liste erstellen

		String var1 = null;
		while ((var1 = input.readLine()) != null) { // model zeilenweise mit Text aus Textdatei befüllen
			model.add(model.getSize(), var1); // Text an letzter Stelle anhängen
		}
		jListTelefonbuch.setModel(model); // model der Liste zuweisen


		} catch (Exception ex) {
			ex.printStackTrace();
		}
}

public Buch(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

Man sollte allerdings beachten, dass man den Telefonbuchdialog auch in einem JDialog schreibt und nicht im JFrame, da sonst der Aufruf des Dialoges nicht modal ist.

Das einzige Problem, welches noch besteht, ist den Pfad für die txt-datei "relativ" vom Programmpfad abzugeben. Aber ich denke da werde ich bei Google fündig.

Danke für die Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
R Eine Datei mit mehreren Zeilen beschreiben Java Basics - Anfänger-Themen 5
J Zeilen aus einer .txt-Datei auslesen und Variablen zuweisen Java Basics - Anfänger-Themen 11
I Datei mit 2 Spalten und millionen Zeilen Java Basics - Anfänger-Themen 19
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
N Datei mit max 2000 Zeilen schreiben Java Basics - Anfänger-Themen 9
H 200000 Zeilen aus Datei einlesen Java Basics - Anfänger-Themen 13
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
C Zeilen aus einer Datei auslesen Java Basics - Anfänger-Themen 4
G Datei zeilen anhängen Java Basics - Anfänger-Themen 3
D Datei einlesen, zeilen ignorieren, probleeem Java Basics - Anfänger-Themen 7
H Streams etc. erster Versuch Zeilen aus einer Datei zu lesen Java Basics - Anfänger-Themen 6
G Anzahl der Zeilen in einer Datei Java Basics - Anfänger-Themen 7
T die letzten X zeilen einer datei entfernen Java Basics - Anfänger-Themen 19
G zeilen aus text datei löschen Java Basics - Anfänger-Themen 6
ARadauer zeilen einer text datei ermitteln Java Basics - Anfänger-Themen 6
S Anzahl von zeilen einer Datei bestimmen. Java Basics - Anfänger-Themen 4
S In einer CSV Datei leere Zeilen ignorieren Java Basics - Anfänger-Themen 6
D Zeilen aus TXT Datei gezielt löschen Java Basics - Anfänger-Themen 8
V Mehrere Zeilen in eine Datei schreiben + Zeitstempel Java Basics - Anfänger-Themen 3
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
G mit Buffered Writer innerhalb einer Datei Zeilen etc. einfüg Java Basics - Anfänger-Themen 4
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
districon 2D Array - Zeilen und Spalten durchsuchen Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
X Textdatei: zwei-zeilenweise gleiche Zeilen rausschmeißen Java Basics - Anfänger-Themen 21
A Jede x-te Zeile, lösche 10 Zeilen Java Basics - Anfänger-Themen 9
A String mit mehreren Zeilen splitten Java Basics - Anfänger-Themen 4
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
H Best Practice JavaFX TableView mit Zell-Rahmen anstelle von Zeilen-Balken Java Basics - Anfänger-Themen 1
V Ergebnisse in 2 Zeilen Java Basics - Anfänger-Themen 4
C Zeilen in Array einlesen und splitten? Java Basics - Anfänger-Themen 17
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
M Input/Output Alle Zeilen auslesen und in Variable speichern Java Basics - Anfänger-Themen 5
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
F Problem mit Tabulatoren bei Zeilen zählen einer Textdatei Java Basics - Anfänger-Themen 17
F Textdatei einlesen und Zeilen zählen Java Basics - Anfänger-Themen 10
M Array: Zeilen vergleichen Java Basics - Anfänger-Themen 4
J Klassen Hilfe bei unbekannten Zeilen bzgl. Klassen / Komponenten Java Basics - Anfänger-Themen 12
T JTable einzelne Zeilen löschen Java Basics - Anfänger-Themen 3
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
L String extrahieren mit Regular Expression über mehrere Zeilen hinweg Java Basics - Anfänger-Themen 1
T CSV auf Inhalt und Zeilen überprüfen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Einlesen von mehreren Zeilen Java Basics - Anfänger-Themen 4
J Zeilen unsichtbar Java Basics - Anfänger-Themen 11
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
V Methoden Zeilen nach bestimmtem Attribut sortieren Java Basics - Anfänger-Themen 4
M Einzelne Zeilen nach Zeichen auslesen Java Basics - Anfänger-Themen 4
T Methoden HILFE! readLine() liest nur ungerade Zeilen?? Java Basics - Anfänger-Themen 2
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
B Input/Output bestimmte Zeilen in .txt Dateinen überschreiben Java Basics - Anfänger-Themen 20
G 3422 Zeilen in Eclipse Console Java Basics - Anfänger-Themen 5
L Zeilen und Spalten sortieren Java Basics - Anfänger-Themen 11
K Erste Schritte Eingabetext besteht aus mehreren Zeilen? Java Basics - Anfänger-Themen 3
T BufferedReader mehrere Zeilen einlesen Java Basics - Anfänger-Themen 4
B Zählen bestimmter Zeilen einer .txt Java Basics - Anfänger-Themen 7
N Zeilen vergleichen Java Basics - Anfänger-Themen 7
K BufferedWriter schreibt die letzten paar Zeilen nicht Java Basics - Anfänger-Themen 5
R Erste Schritte 2D-Array: Zeilen & Spalten ohne schleife übergeben? Java Basics - Anfänger-Themen 3
C Mehrere Zeilen unter ~.showMessageDialog Java Basics - Anfänger-Themen 12
K Java Split mehrere Zeilen Java Basics - Anfänger-Themen 4
Q LogFile.log einlesen und Werte zwischen 5 zeilen vergleichen Java Basics - Anfänger-Themen 5
B JList und JTable: leere Zeilen bei listfiles(); Java Basics - Anfänger-Themen 5
M Zeilen aus String exportieren Java Basics - Anfänger-Themen 5
P Unterschied dieser 2 code Zeilen Java Basics - Anfänger-Themen 12
A Anzahl Zeilen eines Arrays bestimmen Java Basics - Anfänger-Themen 10
J Zeilen eines Arrays vergleichen Java Basics - Anfänger-Themen 2
S .txt einlesen->Zeilen ersetzen->neu.txt speichern Java Basics - Anfänger-Themen 13
R String über mehrere Zeilen Java Basics - Anfänger-Themen 15
M Verständnis einiger Zeilen Java Basics - Anfänger-Themen 4
E Array mit Zahlen von 1-(Zeilen*Spalten) befüllen Java Basics - Anfänger-Themen 8
S Zeilen zählen Java Basics - Anfänger-Themen 7
H String/StringBuffer nach zeilen aufteilen Java Basics - Anfänger-Themen 2
K Wie kann ich alle Zeilen in eineR Datenbank zählen? Java Basics - Anfänger-Themen 13
JFeel-x Zeilen eines JEditorPanes Java Basics - Anfänger-Themen 2
0 CSV Import - Zeilen, Spalten Java Basics - Anfänger-Themen 15
O 2D Array - Zeilen-/Spaltenlänge ermitteln Java Basics - Anfänger-Themen 4
P String über mehrere Zeilen definieren Java Basics - Anfänger-Themen 3
A Scanner liest nur 999 Zeilen ein Java Basics - Anfänger-Themen 5
B Zeilen in Textdatei löschen Java Basics - Anfänger-Themen 2
A Anzahl der Zeilen in Textdatei Java Basics - Anfänger-Themen 7
G Zeilen in Eclipse einblenden Java Basics - Anfänger-Themen 2
M Zeilen aus Textdatei in Array schreiben Java Basics - Anfänger-Themen 2
M Zeilen auslesen Java Basics - Anfänger-Themen 12
L In einer Tabelle Zeilen loeschen Java Basics - Anfänger-Themen 4
D Auf Zeilen eines zweidimensionalen Arrays zugreifen Java Basics - Anfänger-Themen 3
D txt nach Zeilen splitten. Java Basics - Anfänger-Themen 9
E was bedeuten @Zeilen Java Basics - Anfänger-Themen 4
T Einlesen von einzelnen Zeilen Java Basics - Anfänger-Themen 2
T null-Zeilen aus einem Array entfernen Java Basics - Anfänger-Themen 4
E Automatischer Zeilen-Umbruch bei JTextArea Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben