Datensätze in Textdatei speichern?

Status
Nicht offen für weitere Antworten.

bernd

Bekanntes Mitglied
Hallo!
Ich möchte eine GUI erstellen die z.B. aus drei Textfeldern besteht!
Jtf1, Jtf2, Jtf3
In jedem Textfeld soll man ein Wort eingeben können.
Diese drei Worte sollen dann wie ein kompletter Datensatz in einer Textdatei abgespeichert werden
und auf wunsch in der GUI auch wieder angezeigt werden!

Hoffe ich konnte mich verständlich machen! :)

Hat einer ein Beispiel, wo so was ähnliches realisiert wird?

Gruß Bernd.

???:L
 
B

bygones

Gast
wenns nur text ist, ist der PrintWriter meiner Ansicht nach gut...
dann einfach werte aus den feldern holen, so schreiben wie du willst und dann auch wieder so auslesen.....
 

bernd

Bekanntes Mitglied
Danke erst mal,
die Datei anzulegen oder auszulesen ist eigentlich nicht das Problem!
Ich weiss nicht recht wie ich nur einzelne Datensätze geziehlt aus der Textdatei auslese!
:)
 
B

bygones

Gast
Student hat gesagt.:
@dbac:
kannst du mir in kurzen worten erklären, wo vor-/nachteile bzw. unterschiede liegen?.
Mit FileOutputStream kann man bytes schreiben - find ich persönlich recht umständlich, wenn ich Text schreiben will...
bei PrintWriter gehts so:
Code:
PrintWriter w = new PrintWriter(new FileWriter("file"));
w.println("zeile1");
w.println("zeile2");
w.flush();
w.close();
 

L-ectron-X

Gesperrter Benutzer
Wenn Du einen Vector speichern willst, kannst Du ihn auch serialisieren, also ein Objekt in einer Datei speichern.
Nach dem Deserialisieren, also der Rekonstruktion, kannst Du dann wieder ganz normal auf die Daten in dem Vector zugreifen. Diese Variante ist zu empfehlen, wenn man die Daten nicht im Klartext gespeichert haben muss.
 

bernd

Bekanntes Mitglied
Code:
import java.util.*;
import java.io.*;


public class Datei1 {
     public ObjectOutputStream out;
     String file = "test.txt"
  public static void main(final String[] args) {
     Vector v = new Vector();
    v.addElement( "a" );
    v.addElement( "b" );
    v.addElement( "c" );
    //System.out.println(v.elementAt( 1 ));
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
    out.writeObject(v);
    out.close();
  }
}

Warum krieg ich denn jetzt hier die Fehlermeldung: ";" expected ???????
 

Sky

Top Contributor
Mach mal aus
Code:
String file = "test.txt"

Code:
String file = "test.txt"; // Semikolon eingefügt
 

bernd

Bekanntes Mitglied
Code:
import java.util.*;
import java.io.*;


public class Datei1 {
     public ObjectOutputStream out;
    static String file = "test.txt";
  public static void main(final String[] args) {
     Vector v = new Vector();
    v.addElement( "a" );
    v.addElement( "b" );
    v.addElement( "c" );
    System.out.println(v.elementAt( 0 ));
    try {
          ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
    out.writeObject(v);
    out.close();
    } catch(Exception e) {

   }

  }
}

So gehts dann! :)
 

bernd

Bekanntes Mitglied
Code:
import java.util.*;
import java.io.*;


public class Datei1 {
     public ObjectOutputStream out;
    static String file = "test.txt";
  public static void main(final String[] args) {
     Vector v = new Vector();
    v.addElement( "a" );
    v.addElement( "b" );
    v.addElement( "c" );
    System.out.println(v.elementAt( 0 ));
    try {
          ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
    out.writeObject(v);
    out.close();
    } catch(Exception e) {

   }

  }
}

So gehts dann! :)
Allerdings stehen in der Datei test.txt nur unleserliche Sachen!
 

Sky

Top Contributor
Dann nimm dies:
Code:
 Vector v = new Vector();
 v.addElement( "1" );
 v.addElement( "2" );
 v.addElement( "3" ); 

 try {
  PrintStream out = new PrintStream(new FileOutputStream(file));
   for ( int i = 0; i < v.size(); i++ ) {
     out.println(v.get(i).toString());
   }
   out.flush();
   out.close();
 } catch(Exception e) {
   e.printStackTrace();
 }
 

Sky

Top Contributor
bernd hat gesagt.:
Klasse funktioniert!
Obwohl mir noch nicht ganz klar ist warum? :)
Danke

Also, im ersten Fall hast Du per ObjectOutputStream das Objekt in eine Datei geschrieben. Im zweitem Fall wurde der Inhalt des Vectors zeilenweise in eine Datei geschrieben. Wenn Du bestimmte Anteile aus dem Code nicht verstehst, einfach nochmal achfragen!
 

bernd

Bekanntes Mitglied
Dann müsste es ja auch nicht schwer sein die Datei auszulesen und die Daten in einer GUI
sichtbar zu machen!
(Da hab ich mal irgendwo was von Serialisieren oder so gehört)
Das müsste doch dann auch mit beiden Methoden funktionieren oder? :) ???:L
 

Sky

Top Contributor
'Serialisieren' ist das, was Du mit dem 'ObjectOutputStream' gemacht hast. 'De-Serialisieren' wäre somit das Auslesen aus dieser Objekt-Datei.
Wenn Du die Datei, welche Du in Klartext schreibst wieder auslesen willst, so mußt Du so ähnlich arbeiten wie beim Schreiben; Du mußt dazu z.B. einen BufferedReader verwenden.
 

bernd

Bekanntes Mitglied
sky80 hat gesagt.:
'Serialisieren' ist das, was Du mit dem 'ObjectOutputStream' gemacht hast. 'De-Serialisieren' wäre somit das Auslesen aus dieser Objekt-Datei.
Wenn Du die Datei, welche Du in Klartext schreibst wieder auslesen willst, so mußt Du so ähnlich arbeiten wie beim Schreiben; Du mußt dazu z.B. einen BufferedReader verwenden.

Wie funktioniert denn "De-Serialisieren" ?
Gibt es da ein schönes Beispiel?
Jetzt hast du mich neugierig gemacht! :)
 

bummerland

Top Contributor
Serialisieren:
Code:
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos= new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();

De-Serialisieren:
Code:
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos= new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();

Die Klasse muss dazu das Interface Serializable implementieren.
 
B

bygones

Gast
hihi - stimmt.....
becstift meinte wahrscheinlich:
Serialisieren:
Code:
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos= new ObjectOutputStream(fos); 
oos.writeObject(obj):
oos.flush();
oos.close();
De - Serialisieren:
Code:
FileInputStream fos = new FileInputStream(filename);
ObjectInputStream oos= new ObjectInputStream(fos); 
Object o = oos.readObject():
oos.close();
 

bernd

Bekanntes Mitglied
@deathbyaclown, funktioniert super!
(Das Forum ist echt klasse, mit meinen Büchern wäre ich bestimmt noch nicht so weit gekommen!) :)
 

bernd

Bekanntes Mitglied
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 09.11.2004
  * @author
  */

public class Adressen extends JFrame {
  // Anfang Variablen
  private JTextField jtfvname = new JTextField();
  private JTextField jtfname = new JTextField();
  private JButton jbusave = new JButton();
  static String file = "test.txt";
// Ende Variablen

  public Adressen(final String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setBounds(20, 20, 600, 400);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten
        jtfvname.setBounds(5, 10, 100, 20);
        getContentPane().add(jtfvname);
        
        jtfname.setBounds(5, 35, 100, 20);
        getContentPane().add(jtfname);

    jbusave.setBounds(5, 300, 100, 25);
    jbusave.setText("speichern");
    jbusave.setToolTipText("speichert den Datensatz");
    getContentPane().add(jbusave);
    jbusave.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbusaveActionPerformed(evt); } });

// Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
    public void jbusaveActionPerformed(final ActionEvent evt) {
       Vector v = new Vector();
    v.addElement(jtfvname.getText());
    v.addElement(jtfname.getText());
    jtfvname.setText("");
    jtfname.setText("");
    try {
       ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
        out.writeObject(v);
        out.close();
    } catch(Exception e) {

   }
  }
// Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new Adressen("Adressen");
  }
}

So weit so gut, nun gibt es nur noch das Problem daß neue Einträge die alten überschreiben!
Gibt es da ne einfache Lösung, das die neuen Einträge angehängt werden oder
muss ich erst die alte Datei wieder einlesen, den neuen Eintrag anhängen und dann wieder abspeichern?

Das wäre doch was umständlich oder?
???:L
 

bernd

Bekanntes Mitglied
FileOutputStream(String name, boolean append)
Creates an output file stream to write to the file with the specified name.

Du meinst das hier? :)
 

bernd

Bekanntes Mitglied
Klasse langsam wird das was!
jetzt muss ich nur noch rauskriegen wie ich die Daten wieder geziehlt auslese! :)

Code:
import java.util.*;
import java.io.*;


public class Datei2 {
    static String file = "test.txt";
  public static void main(final String[] args) {

    try {

    FileInputStream fos = new FileInputStream(file);
    ObjectInputStream oos = new ObjectInputStream(fos);
    Object o = oos.readObject();
    System.out.println(o);
    } catch(Exception e) {

   }

  }
}

Also so gehts nicht, damit wird immer nur der erste Eintrag angezeigt! :x
 

bernd

Bekanntes Mitglied
Code:
import java.util.*;
import java.io.*;


public class Datei2 {
    static String file = "test.txt";
  public static void main(final String[] args) {
          Vector v = new Vector();
          
    try {

    FileInputStream fos = new FileInputStream(file);
    ObjectInputStream oos = new ObjectInputStream(fos);
    v = (Vector)oos.readObject();
    System.out.println(v.elementAt(0));
    System.out.println(v.elementAt(1));
    } catch(Exception e) {

   }

  }
}

In der Datei "test.txt" stehen mehrere Namen, ich kann mit "System.out.println(v.elementAt(0));"
aber nur auf die ersten zwei zugreifen! Warum werden mir die anderen nicht ausgegeben?
:?:
 

bernd

Bekanntes Mitglied
Speichern:

Code:
  public void jbusaveActionPerformed(final ActionEvent evt) {
       Vector v = new Vector();
    v.addElement(jtfvname.getText());
    v.addElement(jtfname.getText());
    jtfvname.setText("");
    jtfname.setText("");
    try {
       ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file, true));
        out.writeObject(v);
        out.close();
    } catch(Exception e) {
       e.printStackTrace();
   }
  }

Auslesen:
Code:
public class Datei2 {
    static String file = "test.txt";
  public static void main(final String[] args) {
          Vector v = new Vector();
          
    try {

    FileInputStream fos = new FileInputStream(file);
    ObjectInputStream oos = new ObjectInputStream(fos);
    v = (Vector)oos.readObject();
    System.out.println(v.elementAt(0));
    System.out.println(v.elementAt(1));
    } catch(Exception e) {
       e.printStackTrace();
   }

  }
}

???:L

Liegt es daran , daß die Daten bei jedem speichern an die Datei angehängt werden und dann beim
auslesen nicht erkannt werden?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
J Datensätze aus Txt Datei auslesen - Datensätze durch stöbern Java Basics - Anfänger-Themen 5
P Doppelte Datensätze aus CSV-Datei löschen Java Basics - Anfänger-Themen 17
S CheckIn / CheckOut für Datensätze Java Basics - Anfänger-Themen 2
S Datensätze filtern Java Basics - Anfänger-Themen 3
M JSON Datensätze aus Website in Tabelle Java Basics - Anfänger-Themen 17
F Sortieren von Datensätze Java Basics - Anfänger-Themen 5
J Datensätze aus einer DB als Objekte erzeugen und in ArrayList abspeichern Java Basics - Anfänger-Themen 9
K Datensätze in der Datenbank zählen Java Basics - Anfänger-Themen 32
K Anzahl aller Datensätze anzeigen ? Java Basics - Anfänger-Themen 5
T Gemischte Datensätze als mehrstellige Zahl sortieren Java Basics - Anfänger-Themen 6
S Datensätze einzeln auslesen (Strings) Java Basics - Anfänger-Themen 6
T datensätze in gui anzeigen Java Basics - Anfänger-Themen 4
P SQL - Abfrage - Anzahl an Datensätze. Java Basics - Anfänger-Themen 5
G Komplexe Datenstruktur (Liste heterogener Datensätze) ? Java Basics - Anfänger-Themen 2
I Datenmengen in datensätze reduzieren Java Basics - Anfänger-Themen 7
F Doppelte Datensätze zusammenziehen Java Basics - Anfänger-Themen 2
B Datei öffnen , Datensätze auslesen und damit Rechnen ? Java Basics - Anfänger-Themen 2
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
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
X Textdatei: zwei-zeilenweise gleiche Zeilen rausschmeißen Java Basics - Anfänger-Themen 21
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
J Wörter aus Textdatei suchen Java Basics - Anfänger-Themen 2
S Importieren einer Textdatei Java Basics - Anfänger-Themen 2
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
Jinnai4 Werte in Textdatei ändern Java Basics - Anfänger-Themen 2
JDimi Textdatei mit beliebig vielen Zeilenumbrüchen erstellen Java Basics - Anfänger-Themen 2
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
G Wert in Textdatei ersetzen? Java Basics - Anfänger-Themen 2
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
C Input/Output Textdatei vom Java-Programm nicht geladen Java Basics - Anfänger-Themen 58
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
T Länge einer Textdatei Java Basics - Anfänger-Themen 11
S Übertragen einer Textdatei in ein 2d-Array Java Basics - Anfänger-Themen 2
N Integers aus Textdatei auslesen und mehrere Arrays erstellen Java Basics - Anfänger-Themen 9
T Textdatei öffnen und ans Ende scrollen Java Basics - Anfänger-Themen 11
J Textdatei filtern und bearbeiten Java Basics - Anfänger-Themen 1
C Textdatei oder doch eine Datenban Java Basics - Anfänger-Themen 15
J Input/Output Tilemap effizient speichern als Textdatei Java Basics - Anfänger-Themen 7
J Input/Output Zeile in Textdatei ändern Java Basics - Anfänger-Themen 14
M Textdatei(en) in .jar schreiben Java Basics - Anfänger-Themen 5
K Textdatei auslesen Java Basics - Anfänger-Themen 10
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
K Erste Schritte Textdatei -> Array Java Basics - Anfänger-Themen 1
F Textdatei einlesen in ArryList (Objekte abspeichern?) Java Basics - Anfänger-Themen 4
F Problem mit Tabulatoren bei Zeilen zählen einer Textdatei Java Basics - Anfänger-Themen 17
G Erste Schritte Textdatei einlesen und in Array speichern Java Basics - Anfänger-Themen 5
F Textdatei einlesen und Zeilen zählen Java Basics - Anfänger-Themen 10
L Namen aus Textdatei auslesen Java Basics - Anfänger-Themen 1
E Textdatei kopieren funktioniert nicht Java Basics - Anfänger-Themen 12
M Zweidimensionales Array aus Textdatei gewinnen Java Basics - Anfänger-Themen 6
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
S Methoden Textdatei auslesen Java Basics - Anfänger-Themen 11
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
T Textdatei Zeile löschen? Java Basics - Anfänger-Themen 4
T Textdatei beschreiben/bearbeiten Java Basics - Anfänger-Themen 4
S Textdatei einlesen und JFrame füllen Java Basics - Anfänger-Themen 14
C auslesen bestimmter werte einer textdatei und anschl. hineinschreiben in eine neue txt-datei. Java Basics - Anfänger-Themen 2
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
R Werte in eine Textdatei schreiben Java Basics - Anfänger-Themen 20
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
D Textdatei in geschachtelte Array speichern Java Basics - Anfänger-Themen 17
T Scanner für große Textdatei Java Basics - Anfänger-Themen 11
A Unterschied Textdatei und Quelltextdatei Java Basics - Anfänger-Themen 5
P Input/Output Textdatei einlesen - 1. Zeichen fehlt Java Basics - Anfänger-Themen 7
J Input/Output Textdatei in einer JAR lesen Java Basics - Anfänger-Themen 3
T Erste Schritte einzelne Wörter aus textdatei lesen... Java Basics - Anfänger-Themen 4
S Textdatei im Internet lesen und editieren Java Basics - Anfänger-Themen 2
J Textdatei einlesen und ausgeben - NullPointerException Java Basics - Anfänger-Themen 5
M Input/Output Objekte in einer Textdatei ablegen (Highscore) Java Basics - Anfänger-Themen 9
P CSV Daten in Textdatei Speichern Java Basics - Anfänger-Themen 3
K Input/Output Eingelesenedaten von Scanner als Textdatei ausgeben? Java Basics - Anfänger-Themen 2
N Input/Output Konsolenausgabe in Textdatei speichern/umleiten Java Basics - Anfänger-Themen 7
V Auf Textdatei in jar zugreifen Java Basics - Anfänger-Themen 3
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
S Methoden Textdatei Teil String auslesen Java Basics - Anfänger-Themen 3
H Zeile aus Textdatei lesen und in Textfield schreiben Java Basics - Anfänger-Themen 4
J durch drücken eines buttons text in einer textdatei speichern Java Basics - Anfänger-Themen 2
W letzte Zeile aus wachsender Textdatei auslesen Java Basics - Anfänger-Themen 5
algebraiker Textdatei-Import Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
C Spalte einer Textdatei einlesen Java Basics - Anfänger-Themen 10
Fab1 Input/Output Textdatei auslesen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben