einfache Adressdatenbank in Textdatei

Status
Nicht offen für weitere Antworten.

nils-ahrens

Aktives Mitglied
Hallo,

ich bin gerade dabei, ein altes Programm aufzuwärmen. Ziel ist es ein funtionierendes Tutorial zu schaffen, mit dem es möglich ist, Name und Telefonnummer in einer *.txt Datei zu speichern, auszulesen und zu erweitern.
Das Grundgerüst dafür habe ich noch aus alten Schulzeiten. Aber leider funtioniert das nicht so, wie ich es mir vorstelle.
Die .txt Datei wird zwar angelegt, aber sie wird nicht mit Daten gefüttert. Der Compiler läuft einwandfrei durch. Alle Errormelungen habe auch schon ausgebübelt.
Leider weiß ich jetzt nicht mehr weiter, und hoffe, dass mir jemand weiterhilft und sieht, wo da der Fehler liegt.

OK, Das Programm sieht so aus:

Start Klasse:
Code:
public class MainGUI
{
    public static void main(String args[])
    {
        GUIAnwendung gui=new GUIAnwendung();
    }
}
GUI Anwendung:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.text.*;

public class GUIAnwendung
{
    Fenster f=new Fenster();
    Freund meinFreund=new Freund();
    Dateiverarbeitung da=new Dateiverarbeitung();   
    //Pausen pn=new Pausen();
    //Diagramm dia=new Diagramm();
    
    Vector daten=new Vector();
    
    Label ueberschrift=new Label("Meine Telefonliste");
    Label suche=new Label("Suche");
    Label kommentar1=new Label("Dateiname");
    Label kommentar2=new Label("Name");
    
    TextField dateiName=new TextField();
    TextField textZeile=new TextField();
    
    TextField suchName=new TextField();
    TextField suchTelNr=new TextField();    
    TextArea ausgabe=new TextArea();
    
    Button lesen=new Button("Datei lesen");
    Button bsuchen=new Button("TelNr suchen");
    Button ziehen=new Button("Rumpelstielzchen!");
    
    String dateinam=new String();
    String text=new String();
       
    
    public GUIAnwendung()
    {
        f.setBackground(Color.yellow);
        f.setLayout(null);
        
        dateiName.addActionListener(new Abhoerer1());        
        textZeile.addActionListener(new Abhoerer2());
        lesen.addActionListener(new Abhoerer3());
        bsuchen.addActionListener(new Abhoerer4());
        
        ueberschrift.setFont(new Font("Serif",Font.BOLD,20));
        ueberschrift.setForeground(Color.red);
        ueberschrift.setAlignment(2);
        ueberschrift.setBounds(10,30,200,20);        
        suche.setFont(new Font("Serif",Font.BOLD,20));
        suche.setForeground(Color.red);
        suche.setAlignment(2);
        suche.setBounds(220,100,100,20);
        dateiName.setBounds(10,70,100,20);
        textZeile.setBounds(120,70,100,20);
        suchName.setBounds(240,130,120,20);
        suchTelNr.setBounds(240,190,120,20);
        bsuchen.setBounds(240,160,120,20);
        kommentar1.setBounds(10,50,100,20);
        kommentar2.setBounds(120,50,100,20);
        lesen.setBounds(240,50,100,20);
        ausgabe.setBounds(10,100,210,200);
        
        f.add(dateiName);
        f.add(ueberschrift);
        f.add(kommentar1);
        f.add(kommentar2);
        f.add(suche);
        f.add(bsuchen);
        f.add(suchName);
        f.add(suchTelNr);
        f.add(textZeile);
        f.add(lesen);
        f.add(ausgabe);
        
        f.setSize(400,400);
        f.show();
        //f.setLocation(400,425);
    }
    
    class Abhoerer1 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            da.dateiAnlegen(dateiName.getText());
        }
    }         
    
    class Abhoerer2 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            String s=textZeile.getText();
            if(s.equals("#"))da.dateiSchliessen();
            else{
                da.zeileAusgeben(s);
                textZeile.setText("");
                if(kommentar2.getText().equals("Name"))kommentar2.setText("Telefonnummer");
                else kommentar2.setText("Name");                
            }            
        }
    }
    
    class Abhoerer3 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            daten=da.lesen(dateiName.getText());            
            ausgabe.setText("Name Telefonnummer"+"/n");
            ausgabe.appendText("/n");
            for(int i=0;i<daten.size();i++){
                meinFreund=(Freund)daten.elementAt(i);
                ausgabe.appendText(meinFreund.name+" "+meinFreund.tel+"/n");
            }
        }
    }
    
    class Abhoerer4 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            String sname=suchName.getText();
            int nr=0;
            boolean gefunden=false;
            while(nr<daten.size()){
                meinFreund=(Freund)daten.elementAt(nr);
                if(sname.equals(meinFreund.name)){
                    gefunden=true;
                    suchTelNr.setText(""+meinFreund.tel);
                    break;
                }
                nr++;
            }
            if(!gefunden)suchTelNr.setText("nein!");
        }
    }
}
Datenverarbeitung:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class Dateiverarbeitung {
    BufferedWriter f1;
    BufferedReader f2;
        
    public Dateiverarbeitung(){}
    
    public void dateiAnlegen(String n){
            
            try{
                f1=new BufferedWriter(new FileWriter(n));
            }
            catch (IOException e){
                System.out.println("Fehler beim Erstellen der Datei");                
            }        
        }
        
        public void zeileAusgeben(String t){
            try{
                f1.write(t);
                f1.newLine();
            }
            catch (IOException e){
                System.out.println("Fehler beim Erstellen der Datei");
            }
        }
        
        public void dateiSchliessen(){
            try{
                f1.close();
            }
            catch (IOException e){
                System.out.println("Fehler beim Erstellen der Datei");
            }
        }
        
        public Vector lesen(String n){
            String dat=new String();
            String name=new String();
            int tel=0,zaehler=1;
            Vector v=new Vector();
            try{
                f2=new BufferedReader(new FileReader(n));
                while((dat=f2.readLine())!=null){
                    if(zaehler%2==0){
                        tel=Integer.parseInt(dat);
                        Freund freund=new Freund(name,tel);
                        v.addElement(freund);
                    }
                    else name=dat;
                    zaehler++;
                }
                f2.close();
            }
            catch (IOException e){}
            return v;
        }   
}
Karteikarte:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;


public class Freund {
    String name=new String();
    int tel;
    
    public Freund() {}
    public Freund(String n,int t) {
        name=n;
        tel=t;
    }
}
Das Fenster:
Code:
import java.awt.*;
import java.awt.event.*;


public class Fenster extends Frame
{
    public Fenster()
    {
        this.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
            dispose();
            System.exit(0);}});
    }
}

/*Ciao
Nils*/
 

Wildcard

Top Contributor
nils-ahrens hat gesagt.:
Ziel ist es ein funtionierendes Tutorial zu schaffen, mit dem es möglich ist, Name und Telefonnummer in einer *.txt Datei zu speichern, auszulesen und zu erweitern.
Tutorial geeignet ist das sicher nicht :noe:
 

nils-ahrens

Aktives Mitglied
Ja Du hast recht,
ein großes Manko ist noch, dass wenn die Datei geschrieben worden ist und bereits Einträge existieren, man die alten Einträge wieder löscht, um neue hinzufügen zu können.
Wie kann ich in diesem Tutorial neue Einträge der Datei hinzufügen, ohne die bestehenden wieder zu löschen?
 

Wildcard

Top Contributor
Du kannst dem Writer im Konstruktor ein Flag mitgegeben ob neuer Inhalt angehängt werden soll, oder nicht.
Aber davon abgesehen kannst du soetwas einem Anfänger nicht als Referenz in die Hand drücken.
Nur mal ein paar Beispiele:

- Dein Zeilenumbruch ist nicht platformspezifisch
- Du verwendest einen Vector obwohl du nur einen Thread hast (ArrayList nehmen)
- du verrätst Implementierungsdetails über deine Colection. Das Programm braucht nur zu wissen das du eine Collection oder eine List hast, jedoch nicht welche Implementierung dahintersteht
- nimm einen Iterator oder foreach
- kein vernünftiges Exception-Handling
- du verwendest API die als deprecated markiert ist
- kein Layout Manager
- ...
 

nils-ahrens

Aktives Mitglied
OK, das sieht nach viel Arbeit aus.
Viele Sachen sind mir leider noch kein Begriff.
Du kannst dem Writer im Konstruktor ein Flag mitgegeben ...
Mit Konstruktor meinst Du in diesem Fall die Klasse Datenverabeitung, richtig?
Ich habe noch nicht mit Flags gearbeitet und weiß nicht, wie ich das in diesem Fall anwenden soll.
Im Internet habe ich auch nichts verständliches gefunden.
Kannst Du mir ein Beispiel geben? Dann kann ich mal versuchen, das auf meiner Baustelle anzuwenden.
 

nils-ahrens

Aktives Mitglied
Na gut. Aber ich würde es gerne schaffen, dass ich die *.txt auslesen kann und mit neuen Daten dann wieder überschreiben kann. Ich bin auch schon bei java.sun.com gewesen. Aber das ist mir alles zu abstrakt.
Meistens kombiniere ich nur fertige Programmelemente, um daraus mein eigenes Ding zu machen.
Es wäre super, wenn Du mir an der Klasse Datenverarbeitung das zeigen kannst. Dieser FileWriter wird ja schon verwendet. Wie gebe ich dem ein Flag mit?
 

Wildcard

Top Contributor
Ich hab dir doch einen Link zu exakt dem Teil der API-Docs gegeben das du brauchst. Hast du ihn nicht angeschaut oder kannst du kein englisch? ???:L
Code:
f1=new BufferedWriter(new FileWriter(n,true));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
B Einfache OCR zur Zahlenerkennung? Java Basics - Anfänger-Themen 6
M Einfache Datenfilterung Java Basics - Anfänger-Themen 15
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
H Einfache Frage zur Punktnotation objektname.methode(wert) Java Basics - Anfänger-Themen 2
B Einfache HSQLDB? (lock acquisition failure) Java Basics - Anfänger-Themen 2
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
O Ganz einfache Frage - Array Java Basics - Anfänger-Themen 5
E Einfache Java Verschlüsselung Java Basics - Anfänger-Themen 4
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
J Einfache pub/sub Lösung mit ausführlicher Doku Java Basics - Anfänger-Themen 5
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
K einfache Kombinatorik Java Basics - Anfänger-Themen 4
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
X Einfache Frage; wie soll ich die spezielle float var speichern? Java Basics - Anfänger-Themen 2
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
K Möglichkeiten um eine einfache Animation darzustellen Java Basics - Anfänger-Themen 7
L Einfache Lineare Suche Java Basics - Anfänger-Themen 7
P Erste Schritte Einfache For Schleife Java Basics - Anfänger-Themen 10
M Einfache Java Operation, cheggs net Java Basics - Anfänger-Themen 2
V Erste Schritte Einfache Rechnung mit Exponenten Java Basics - Anfänger-Themen 3
G einfache Leet-Übersetzung implementieren und benutzen Java Basics - Anfänger-Themen 14
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
C Extrem einfache Aufgabe falsch beantwortet :$ Java Basics - Anfänger-Themen 6
Z Super einfache Frage For-Schleife im Detail Java Basics - Anfänger-Themen 3
N Potenzierung durch einfache Operatoren Java Basics - Anfänger-Themen 13
H Einfacher Editor, Einfache Handelsanweisungen Java Basics - Anfänger-Themen 2
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
-horn- Einfache graphische Darstellung von 3D Koordinaten für Flugbahnen? Java Basics - Anfänger-Themen 4
B Einfache jsp Seite darstellen Java Basics - Anfänger-Themen 9
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
J Einfache Designfrage Java Basics - Anfänger-Themen 4
R Methoden Einfache Loops? Java Basics - Anfänger-Themen 8
E einfache Frage zu private Java Basics - Anfänger-Themen 26
R Sehr einfache möglichkeit ArrayList oder Array zu initialisieren? Java Basics - Anfänger-Themen 8
F Einfache Klassen für Datum und Zeit Java Basics - Anfänger-Themen 3
Spin Einfache Anfänger Frage setVisible von Panels Java Basics - Anfänger-Themen 5
E OOP einfache Array Aufgabe mit jUnit Java Basics - Anfänger-Themen 5
D einfache Quizfrage programmieren Java Basics - Anfänger-Themen 11
B Einfache Applets für Webseite Java Basics - Anfänger-Themen 10
K Einfache Rekursion - Wert wird nicht in Variable gespeichert Java Basics - Anfänger-Themen 7
U Einfache Aufgabe Java Basics - Anfänger-Themen 5
E Einfache Frage zur Parameterübergabe in Methoden Java Basics - Anfänger-Themen 8
M einfache Übungsaufgaben gesucht Java Basics - Anfänger-Themen 7
M Einfache Rechnung(R=U/I) Java Basics - Anfänger-Themen 12
D Wohl eine einfache Frage... Java Basics - Anfänger-Themen 2
W Einfache Passwortabfrage funktioniert nicht Java Basics - Anfänger-Themen 3
P einfache GUI-Elemente Java Basics - Anfänger-Themen 10
F Vererbung (einfache Frage) Java Basics - Anfänger-Themen 5
S 2 Einfache Fragen (Exception Breakpoint, Konstruktor) Java Basics - Anfänger-Themen 4
L einfache Klasse erstellen Java Basics - Anfänger-Themen 16
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
P Einfache Bedingung (?) in Java Java Basics - Anfänger-Themen 3
W Einfache Rekursion Java Basics - Anfänger-Themen 14
T Einfache Textausgabe .java unter OS X Java Basics - Anfänger-Themen 13
B einfache Rekursion Java Basics - Anfänger-Themen 9
A [Hilfe] einfache Aufgabe Java Basics - Anfänger-Themen 26
A Einfache java Verschlüsselung HILFE Java Basics - Anfänger-Themen 3
M einfache java application Java Basics - Anfänger-Themen 4
S Kann einfache Texteingabe nicht auswerten! Java Basics - Anfänger-Themen 3
M einfache frage zum Jdk-Compiler Java Basics - Anfänger-Themen 3
Spin einfache Frage zu Klassen Java Basics - Anfänger-Themen 12
J einfache Tastendrücke in einem JFrame abfragen Java Basics - Anfänger-Themen 2
C "einfache" If-Abfrage Java Basics - Anfänger-Themen 15
H Einfache Ausgabe eines Arrays in einen File Java Basics - Anfänger-Themen 8
F Einfache Liste hinten was einfügen Java Basics - Anfänger-Themen 3
L Einfache Umrechnung Java Basics - Anfänger-Themen 2
D Einfache Funktion zum kaufmännischen runden Java Basics - Anfänger-Themen 8
K einfache Multiplikation Java Basics - Anfänger-Themen 6
S Einfache Rechnung mit Schleife Java Basics - Anfänger-Themen 10
G einfache Swing-GUI Java Basics - Anfänger-Themen 3
F Einfache Tastatureingabe Java Basics - Anfänger-Themen 2
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
S "einfache Klassengeschichten" keine Fehler, läuft Java Basics - Anfänger-Themen 2
R Einfache MVC-Uhr. MVC richtig umgesetzt? [Überarbeitet] Java Basics - Anfänger-Themen 5
A Einfache Frage zur Mehrfachvererbung Java Basics - Anfänger-Themen 3
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
J eine einfache liste Java Basics - Anfänger-Themen 17
D Suche einfache Übungsaufgaben für den JavaCreator! Java Basics - Anfänger-Themen 5
R Einfache Messagebox Java Basics - Anfänger-Themen 9
I einfache Wiedergabe Java Basics - Anfänger-Themen 2
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
U "Einfache Verschlüsselung" Java Basics - Anfänger-Themen 17
K einfache Umfang und Flächenberechnung mit interfaces Java Basics - Anfänger-Themen 3
M Einfache HTML Mail versenden , suche Beispiel Java Basics - Anfänger-Themen 5
L MVC-einfache frage Java Basics - Anfänger-Themen 13
M einfache schleife Java Basics - Anfänger-Themen 7
M Einfache Schleife Java Basics - Anfänger-Themen 4
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
izoards Textdatei Human unreadable abspeichern Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben