Zum Inhalt springen

input/output-streams


Empfohlene Beiträge

Geschrieben

hi, habe grad seit ein paar tagen mit java angefangen und hab mal

n paar fragen zu nem adressbuch.

mit diesem programm :


import java.io.*;

import de.lsbk.io.Fmt;

import de.lsbk.io.Kbd;

import java.util.Date;

import java.text.*;




public class adress

{


static void clr()

{

  System.out.println("\n\n\n\n");

}


static int i,anzahl;

static String kontakte[];

static String ort[];

static int aphone[];

static int vphone[];





  static void menue1()

  {

    clr();

    ort=new String[100];

    kontakte=new String[100];

    vphone=new int[100];

    aphone=new int[100];

    System.out.println("Name eingeben");

    System.out.print("Wieviele?");

    anzahl=Kbd.readInt();



    for(i=0;i<anzahl;i++)

        {

         System.out.println(i+1+"ter Name: ");

         kontakte[i]=Kbd.readString();

         System.out.println("Wohnort:");

         ort[i]=Kbd.readString();

         System.out.println("Phone-Vorwahl:");

         vphone[i]=Kbd.readInt();

         System.out.println("Anschluss:");

         aphone[i]=Kbd.readInt();

        }


    for(i=0;i<anzahl;i++)

     {

     System.out.println(">>> "+kontakte[i]+" chached");

     }

    Kbd.readString();

    clr();

    clr();

    clr();

    clr();

  }


  static void menue2()

  {

    System.out.println("Name ausgeben");

    System.out.println("-------------");

    System.out.println();

    System.out.println(Fmt.strFmt("Nr.",10)+Fmt.strFmt("Name:",16)+Fmt.strFmt("Wohnort:",20)+Fmt.strFmt("Phone:",30));

    System.out.println("--------------------------------------------------------------------------------");

    System.out.println();

    for(i=0;i<anzahl;i++)

             {

              System.out.println(Fmt.intFmt(i+1,0)+(".        ")+Fmt.strFmt(kontakte[i],16)+Fmt.strFmt(ort[i],20)+Fmt.intFmt(vphone[i],0)+Fmt.intFmt(aphone[i],6));

             }

    clr();

    System.out.print("Weiter mit Enter");

    Kbd.readString();

  }

  static void menue3()

  {

    try


                 {

                     File f = new File("adressen.config");

                     PrintWriter out = new PrintWriter(new FileWriter(f));

                     out.println("Eintragung vom:");

                     DateFormat defaultDate = DateFormat.getDateInstance();

                     out.println(defaultDate.format(new Date()));

                     out.println();

                     out.println();

                     for(i=0;i<anzahl;i++)

                     {

                     out.println(kontakte[i]);

                     out.println(ort[i]);

                     out.println(vphone[i]);

                     out.println(aphone[i]);

                     out.println();

                     out.println();

                     System.out.println(">>> "+kontakte[i]+" saved on harddisk C:/.../adressen.config");

                     }

                     out.close();

                 }

                catch (IOException e)

                      {

                      }

     System.out.println();

  }

  public static void main(String[]args)

  {


    char eingabe;

    DateFormat defaultDate = DateFormat.getDateInstance();

    System.out.println(defaultDate.format(new Date()));

    System.out.println("                                                                          v.0.1a");

    System.out.println("*******");

    System.out.println("*Menue*");

    System.out.println("*******");





    clr();

    do

    { System.out.println("***********************");

      System.out.println("*1 = Kontakte eingeben*");

      System.out.println("*2 = Kontakt auslesen *");

      System.out.println("*3 = auf Harddisk     *");

      System.out.println("*Q = Ende             *");

      System.out.println("***********************");

      System.out.print(">>>>");

      eingabe=Kbd.readChar();

      clr();


      switch(eingabe)

      {

        case '1': menue1();break;

        case '2': menue2();break;

        case '3': menue3();break;

        case 'q': case'Q':System.exit(1);

        default : System.out.println("Falsche Eingabe!");

      }

    }

    while (true);

  }


}

kann ich ich namen etc einlesen und dann in einer datei speichern.

das problem ist nun das ich beim erneuten start die namen aus der selben datei lesen will damit sie in der ausgabe(menue2) gleich enthalten bzw. wenn ich weitere namen einlese die alten nicht überschrieben werden.

danke

mfg

Anmerkung Jaraz: Bitte Code Tags benutzen!

Geschrieben

Ok, mach das. Ist kein Problem.

Oder wo war die Frage?

BTW, keiner liest sich irgendeinen unformatierten ellenlangen Quelltext durch und sucht nach Fehlern oder Anregungen. Poste am Besten den relevanten Teil.

Peter

Geschrieben

sorry fragezeichen vergessen. würde gern wissen, wie ich aus meiner vorher angelegten datei, die daten zurück in meine arrays lesen kann und wie mache stelle ich es am besten an das bei neueingabe die inhalte hinzugefügt und nicht ersetzt werden?????? <--- Fragezeichen

Geschrieben

Du hast zwar immer noch den kompletten Wust an Source, den ich nicht lesen will, aber hier mal das prinzipielle Vorgehen.

Du kannst mit einem InputStream die Datei lesen. Das geht in etwa so (Genaueres in der API-Doc):


String string;

BufferedReader reader = new BufferedReader(new FileReader("filename"));

while(string = reader.readLine())

{

    // eingelesene Zeile verarbeiten

}

Damit kannst Du Deine Daten wieder einlesen.

Wenn Du an eine Datei was anhängen willst, dann gibt es für den FileWriter einen Konstruktor, der ein boolean append will. Und das sollte selbsterklärend sein.

Die API-Doc ist Dein bester Freund bei sowas.

Peter

  • 1 Monat später...
Geschrieben

Java ist eine Objektorientierte Sprache, schon gewusst?

Man kann alles vergewaltigen... *heul*

Und, soweit ich weiß sollte es heißen "System.exit(0)" - denn 'q' soll ja einen sauberen Abgang produzieren, und nicht mit Fehlercode 1 abschließen... :eek:

  • 3 Jahre später...
Geschrieben
Java ist eine Objektorientierte Sprache, schon gewusst?

Man kann alles vergewaltigen... *heul*

Und, soweit ich weiß sollte es heißen "System.exit(0)" - denn 'q' soll ja einen sauberen Abgang produzieren, und nicht mit Fehlercode 1 abschließen... :eek:

Soweit ich weiss, gab es mal Menschen mit Tolleranz...

Wer sich den Text des users mal genauer durchlesen würde, hätte festgestellt, das es sich hierbei um einen Anfänger handelt. Da wären "Sinnvolle" Tipps hilfreicher als dumme Kommentare loszulassen..:cool:

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...