Swing Wie Daten in der Form speichern? Array oder ArrayList

Diskutiere Wie Daten in der Form speichern? Array oder ArrayList im AWT, Swing, JavaFX & SWT Forum; Hallo Leute, mein Problem ist das folgende. Ich habe ein Programm, über welches ich Mitarbeiter und ihre Daten anlegen also erstellen, suchen und...

  1. Alex2013
    Alex2013 Mitglied
    Hallo Leute,

    mein Problem ist das folgende. Ich habe ein Programm, über welches ich Mitarbeiter und ihre Daten anlegen also erstellen, suchen und ändern kann.
    Das Problem ist hierbei, dass ich versuchen wollte, die eingegebenen Daten in einem Array zu speichern und dieses an eine Datei übergeben wollte. Dies funktioniert jedoch mit meinem Programm bisher nicht.
    Es wird zwar eine Datei erstellt. Diese bleibt aber leer und lässt sich über keine Variante füllen.
    Habt ihr einen Tipp, wie ich die Daten aus dem Array in eine Datei speichern kann bzw. direkt in eine Datei speichern kann, sodass sie später wieder eingelesen werden kann?
    Ggf. über eine ArrayList?

    Mein Code ist wie folgt:
    Code (Java):
    public class Mitarbeiterdaten{
      static String daten[]={"","","","","","",""};
      public static class Mitarbeiter{ // maessdaten zusammengefasst
        public String vorname;
        public String familienname;
        public String abteilung;
        public String funktion;
        public String personalnummer;
        public String mail;
        public String kommentar;
      }

     
    //  public void schreiben(String daten[], Mitarbeiter ma){
    //      daten[0]=ma.vorname;
    //      daten[1]=ma.familienname;
    //      daten[2]=ma.abteilung;
    //      daten[3]=ma.funktion;
    //      daten[4]=ma.personalnummer;
    //      daten[5]=ma.mail;
    //      daten[6]=ma.kommentar;
    //  }


      public static void main(String[] args) { // Hauptprogramm
        Scanner scanner=new Scanner(System.in);
        Formatter schreiben;
          // Benoetigte Variablen
        Scanner neueEingabe=new Scanner(System.in);
        Mitarbeiter[] mitarbeiter= new Mitarbeiter[20];
        Mitarbeiter ma;
        boolean fertig=false;
        // Initialisiere das Feld
        for (int i=0;i<mitarbeiter.length;i++)
          mitarbeiter[i]=new Mitarbeiter();
        ma=mitarbeiter[0];
     
       
        // Starte das Programm mit eines huebschen Ausgabe
        System.out.println("================");
        System.out.println("Mitarbeiterverwaltung");
        System.out.println("================");
     
       
        // Schleifenbeginn
        while (!fertig) {
          // Menue
          System.out.println(" ");
          System.out.println("1: Mitarbeiter anlegen");
          System.out.println("2: Mitarbeiter suchen");
          System.out.println("3: Mitarbeiterdaten aendern");
          System.out.println("4: Programm beenden");
          int auswahl=Integer.parseInt(scanner.nextLine());//IOTools.readInteger("Ihre Wahl:");
         
          // Fallunterscheidung
          switch(auswahl) {
            case 1: // daten eingeben
              ma.vorname        =scanner.nextLine();
              ma.familienname   =scanner.nextLine();
              ma.abteilung  =scanner.nextLine();
              ma.funktion     =scanner.nextLine();
              ma.personalnummer=scanner.nextLine();
              ma.mail        =scanner.nextLine();
              ma.kommentar   =scanner.nextLine();
              System.out.println("Mitarbeiterdaten:\n"+"Vorname: "+ma.vorname+
                      "\nFamilienname: "+ma.familienname+"\nAbteilung: "+ma.abteilung+
                      "\nFunktion: "+ma.funktion+"\nPersonalnummer: "+ma.personalnummer+
                      "\nEmail: "+"\nKommentar: ");
             
              Mitarbeiterdaten md=new Mitarbeiterdaten();
             
              md.daten[0]=ma.vorname;
              md.daten[1]=ma.familienname;
              md.daten[2]=ma.abteilung;
              md.daten[3]=ma.funktion;
              md.daten[4]=ma.personalnummer;
              md.daten[5]=ma.mail;
              md.daten[6]=ma.kommentar;
              System.out.println("\nDaten gespeichert");
              System.out.println("\n"+daten[0]+"\n"+daten[1]+"\n"+daten[2]+"\n"+daten[3]+"\n"+daten[4]+"\n"+daten[5]+"\n"+daten[6]);
             
           
              Formatter x=null;
              System.out.println("\nDatei erzeugen: \nName: \n");
              String dateiname=scanner.next();
              String dateiinhalt="";
              Scanner inDateiSchreiben;
              File f=new File("C:\\Users\\alexander.ropella\\Desktop\\"+dateiname);
           
              if(f.exists())
              {
                try {
                    inDateiSchreiben=new Scanner(f);
                    while(inDateiSchreiben.hasNextLine())
                    {
                        dateiinhalt+=inDateiSchreiben.nextLine();
                    }
                    x=new Formatter(f);
                    x.format("%s",dateiinhalt);
                } catch (FileNotFoundException e3) {
                    // TODO Auto-generated catch block
                    e3.printStackTrace();
                }
              }
              else{
                  try {
                    x=new Formatter(f);
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
              }
              x.format("%s",neueEingabe.nextLine());
              x.close();
             
             
              try {
                FileWriter fw=new FileWriter(dateiname);
                fw.write(daten.toString());
                fw.close();
            } catch (IOException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
             
             
             
              try {
                schreiben=new Formatter(f);
                schreiben.format(""+scanner.nextLine());
                schreiben.close();
              } catch (FileNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
             
              System.out.println(""+f.getName()+".txt"+"\nDatei erzeugt");
              break;
            case 2: // daten ausgeben
              System.out.println("Mitarbeiter suchen\n"+"Geben Sie einen Datensatz des Mitarbeiters ein: \n");
              String eingabe=scanner.nextLine();
              if((eingabe.equals(ma.vorname))||eingabe.equals(ma.familienname)||eingabe.equals(ma.abteilung)||eingabe.equals(ma.funktion)||eingabe.equals(ma.personalnummer))
              {
                   System.out.println("Mitarbeiterdaten:\n"+"Vorname: "+ma.vorname+
                           "\nFamilienname: "+ma.familienname+"\nAbteilung: "+ma.abteilung+
                           "\nFunktion: "+ma.funktion+"\nPersonalnummer: "+ma.personalnummer+
                           "\nEmail: "+"\nKommentar: ");
                 
              }
              System.out.println("Drücken Sie eine Taste");

              String eingabe3=scanner.nextLine();
              if(!eingabe3.isEmpty())
              break;
            else
                try {
                    System.console().wait();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            case 3: //daten ändern
                System.out.println("Mitarbeiterdaten ändern:\n"
                        +"(zwischen 0 und 19):");
              int n=Integer.parseInt(scanner.nextLine());
              ma=mitarbeiter[n];
              break;
            case  4: // Programm beenden
              fertig=true;
              break;
            default: // Falsche Zahl eingegeben
              System.out.println("Eingabefehler!");
          }
        } // Schleifenende
     
      } // Ende des Hauptprogramms
    } // Ende des Programms
     
    Im Switch ist zunächst nur die 1 Verzweigung wichtig, dass diese funktioniert.
    Das Programm lässt sich soweit kompilieren und erstellt auch eine Datei. Diese ist aber leer.
    Vielen Dank für eure Tipps! :)
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. mrBrown
    mrBrown Bekanntes Mitglied
    Weißt du, was der Unterschied zwischen Array und ArrayList ist?

    Verstehst du, was du in dem Teil zum Schreiben in die Datei überhaupt machst?
     
  4. Alex2013
    Alex2013 Mitglied
    Hey, @mrBrown: soweit ich weiß, ist ein Array eine von vornherein festgelegte Struktur. Während eine ArrayList dynamisch ist. Von daher sollte es damit ja ggf. klappen, wobei das nicht das Hauptproblem ist. Oder hat ArrayList noch bedeutend weitere Eigenschaften?

    Ich habe mir die Stellen noch einmal angesehen und den Formatter einmal entfernt. Ich überlege hier mit einem Buffered Reader und Writer zu arbeiten. Aber wie ich das umsetzen sollte, ist mir noch nicht klar.
     
Die Seite wird geladen...

Wie Daten in der Form speichern? Array oder ArrayList - Ähnliche Themen

Mit JSF Formular in Datenbank schreiben
Mit JSF Formular in Datenbank schreiben im Forum Java Basics - Anfänger-Themen
Daten/Formular per POST an Firefox/Browser senden
Daten/Formular per POST an Firefox/Browser senden im Forum Java Basics - Anfänger-Themen
Richtiges Auslesen von mehreren Daten im JSON Format via JavaScript
Richtiges Auslesen von mehreren Daten im JSON Format via JavaScript im Forum Für Verirrte - Fragen zu JavaScript
Zwischen zwei Formularen Daten austauschen
Zwischen zwei Formularen Daten austauschen im Forum Allgemeines EE
Daten einer Datenbank in ein Formular einfügen
Daten einer Datenbank in ein Formular einfügen im Forum Web Tier
Thema: Wie Daten in der Form speichern? Array oder ArrayList