Speichern - Java-Datenbank, Textdatei oder wie?

Status
Nicht offen für weitere Antworten.

Exodus155

Mitglied
Hallo,

Was soll ich verwenden damit ich daten auf meiner festplatte speichere und mein programm aufruft? Also möchte dass ganze verschlüsselt machen, weil ich mein programm so gestalten will, dass wenn dass programm gestartet wird eine passwortabfrage kommt, um überhaupt in mein programm hineinzukommen! Datenbank is mir schon klar, aber welcher? wisst ihr was ich meine?

MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Ich glaube, dieser Aufgabe ist fast jede Datenbank gewachsen. Für nicht so geeignet halte ich MS Access.
 

Exodus155

Mitglied
Ich weiß nicht ob ihr mich richtig versteht! also wenn ich z.b.: ein spiel installiere und spiele wo werden dann die saves gespeichert? NAME usw....

MFG
Exodus
 

AlArenal

Top Contributor
Exodus155 hat gesagt.:
Ich weiß nicht ob ihr mich richtig versteht! also wenn ich z.b.: ein spiel installiere und spiele wo werden dann die saves gespeichert? NAME usw....

Da wo der Entwickler es hinhaben wollte.

Ich glaube viel eher du kannst nicht ausdrücken was du sagen willst.
 

nebulo

Bekanntes Mitglied
Verstehe ich dich richtig du willst praktisch nur Spielstände speichern? Da wäre eine Datenbank sicher etwas übertrieben.

Warum willst du das ganze überhaupt verschlüsseln?
 

DP

Top Contributor
einfach ne "billige" textdatei nehmen, lesen/schreiben + ver-/entschlüsselung und feierabend.

weiss nicht was es da großartig zu lamentieren gibt.

gecrackt werden kann jede software...
 

Exodus155

Mitglied
Also ich hab ein programm geschrieben! soweit so gut! Hab in dem programm drinnen Textfelder wo ich namen eingeben kann! wo kann ich die namen dann abspeichern? welche datei? soll ich eine tabelle verwenden?

MFG
Exodus
 
G

Guest

Gast
Einfach serialisieren/deserialisieren ist für sowas gut geeignet, wie bereits gesagt
Code:
// Stream zum Lesen
ObjectInputStream in = new ObjectInputStream(new InflaterInputStream(new BufferedInputStream(new FileInputStream(file))));
// Stream zum Schreiben
ObjectOutputStream out = new ObjectOutputStream(new DeflaterOutputStream(new BufferedOutputStream(new FileOutputStream(file))));
 

Exodus155

Mitglied
So habs ausprobiert! keine chance weiß nicht was ich mit inputstream machen soll! also hab textfelder! wenn ich OK drücke, dann soll es abgespeichert werden die textfelder wo ich vorher was hineinschreib.

MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Du liest vor dem Serialisieren die Textfelder aus und speicherst sie in Strings oder einem String-Array, welche du wiederum serialisierst. Deserialisierung ist ähnlich einfach.

Ich habe mir mal vor längerer Zeit eine eigene Klasse zum (De)Serialisieren geschrieben.
Code:
/**
 * Serializer.java
 * @author  L-ectron-X
 */
public class Serializer {
    
    /**
     * Serialisiert ihr übergebene Objekte in einer Datei mit einem ihr
     * übegebenen Dateinamen.
     * @param filename Der (absolute) Dateiname der zu speichernden Datei.
     * @param data Das zu serialisierende Objekt.
     * @return true wenn erfolgreich, sonst false.
     */
    public static boolean serialize(String filename, java.io.Serializable data) {
        try {
            java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(
                new java.io.FileOutputStream(new java.io.File(filename)));
            
            oos.writeObject(data);
            oos.close();
        }
        catch(java.io.NotSerializableException nse) {
            nse.printStackTrace();
            return false;
        }
        catch(java.io.IOException ioe) {
            ioe.printStackTrace();
            return false;
        }
        return true;
    }
    
    /**
     * Deserialisiert ein aus einer Datei gelesenes serialisiertes Objekt.
     * @param filename Der (absolute) Dateiname der zu lesenden Datei.
     * @return Object - das deserialisierte Objekt.
     */    
    public static Object deserialize(String filename) {
        Object object = null;
        try {
            java.io.ObjectInputStream ois = new java.io.ObjectInputStream(
                new java.io.FileInputStream(new java.io.File(filename)));
            
            object = ois.readObject();
            ois.close();
        }
        catch(java.io.IOException ioe) {
            ioe.printStackTrace();
            return null;
        }
        catch(ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
            return null;
        }
        
        return object;
    }
}

Damit wäre eine (De)Serialisierung auf eine kurze Zeile begrenzt.
z.B.
Code:
Serializer.serialize("Textfeldeingaben.ser", meinStringArray);
oder
Code:
String[] eingaben = (String[])Serializer.deserialize("Textfeldeingaben.ser");
 

Exodus155

Mitglied
Code:
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class test
{
	public static void main (String[] args)
	{
		JFrame f1 = new JFrame("EXODUS155"); 
		f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c = f1.getContentPane();
		c.setLayout(null);
		
		JTextField jf1 = new JTextField();
		jf1.setBounds(0,0,100,30);	
		f1.add(jf1);
		
		JButton jb1 = new JButton("OK");
		jb1.setBounds(0,30,100,30);
		f1.add(jb1);
		
		f1.setResizable(false); 
		f1.setSize(0, 100);  
		
		f1.setVisible(true);
		
	}
}
So hab jetz ein kleines programm.

Wenn ich OK drücken will dann soll dass was ich in das textfeld hineingeschrieben habe in ind die test datei geschrieben werden, damit ich sie dann wieder auslesen kann!

p.s.: OK funktioniert mit Actionlistener! Hab ich jetz nicht integriert in dass programm!

MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Hast du schon mal mit mehr als einer Klasse gearbeitet?
Weißt du wie man Inhalte aus Textfeldern ausliest?

Wenn du nur mit einem Textfeld arbeitest kann dein Code der actionPerformed()-Methode so aussehen:
Code:
String str = jf1.getText(); //Textfeld auslesen
boolean success = Serializer.serialize("Testdatei.ser", str); //Objekt serialisieren
if(success) {
   jf1.setText(""); // Feld leeren
   JOptionPane.showMessageDialog(null, "Speichern erfolgreich!", "Meldung", JOptionPane.INFORMATION_MESSAGE);
}
else {
   JOptionPane.showMessageDialog(null, "Speichern fehlgeschlagen!", "Meldung", JOptionPane.ERROR_MESSAGE);
}


Das Einlesen serialisierter Objekte würde dann so aussehen:
Code:
String str = (String)Serializer.deserialize("Testdatei.ser"); //Objekt deserialisieren
if(str == null) {
   JOptionPane.showMessageDialog(null, "Fehler beim Einlesen!", "Meldung", JOptionPane.ERROR_MESSAGE);
   return;
}
jf1.setText(str);

Um das alles in Gang zu bekommen, kopierst du meine Klasse in dein Projekt und kompilierst sie. Dann schreibst du den Code oben in die actionPerformed()-Methode des Speichern-Buttons.
Den Code unten schreibst du in die Methode des actionPerformed()-Methode des Einlesen-Buttons.

Bei der Variante mit einem Textfeld wird auch nur ein String gespeichert/wiederhergestellt. Wenn du mehrere Textfelder hast, schreibst du die Inhalte in ein String-Array und (de)serialisierst dieses.
 

Exodus155

Mitglied
ähm ne weiß ich jetz grad nicht wie man textfelder in strings umwandelt kannst du mir dass nochma kurz sagen?
und hab auch nicht mit mehr als einer klasse gearbeitet!
Bitte erklärung !! ;-)


MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Exodus155 hat gesagt.:
ähm ne weiß ich jetz grad nicht wie man textfelder in strings umwandelt kannst du mir dass nochma kurz sagen?
Schau dir mal den ersten Codeblock an, gleich die erste Codezeile.

Wenn dir das dann immer noch Probleme beim Verständnis bereitet, solltest du unbedingt erst mal ein paar Kapitel in einem Einsteigerbuch lesen.
 

Exodus155

Mitglied
ahja mann bin ich blöd steht ja groß da!hehe ja hab das buch "JAVA IST AUCH EINE INSEL 5.te auflage"! sorry dass ich so viel frage!

MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Ein Forum ist zum Fragen da, nur kann ich dir hier aus Zeitmangel nicht gewisse Grundlagen in aller Ausführlichkeit beibringen. ;)
Mich würde auch interessieren, ob du die Sache nun zum Laufen gebracht hast.
 

Exodus155

Mitglied
ja geht sehr gut! habe eine neue klasse gemacht Seiralizer und deinen code kopiert! er erstellt im gleichen ordner testdatei.ser! danke nochma!

warum benötigt man eine eigene klasse Serializer? geht dass nich in der main class?

MFG
Exodus
 

L-ectron-X

Gesperrter Benutzer
Doch, das geht natürlich auch. Aber normale Projekte verteilen sich in mehrere Klassen und Pakete, da wäre es untypisch in mehreren Klassen die gleichen Funktionen zu implementieren.
 
G

Guest

Gast
Na das was die Klassen machen sollen...Deine Klasse macht doch auch was DU willst?
Eine andere Klasse macht dann halt was anderes... *loooooool*
Halt das was man Ihr sagt was sie tun soll....glaube Du solltest echt Mal ein Java-Buch zur Hand nehmen und bei Seite 1 anfangen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
T Java Spiel Daten speichern Datenbankprogrammierung 1
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
T select Abfrage in Java Integer speichern ? Datenbankprogrammierung 2
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
OnDemand Externe IDs speichern - Tabellenaufbau Datenbankprogrammierung 8
OnDemand Spring Boot Speichern in Threads Datenbankprogrammierung 6
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
S Sets speichern Datenbankprogrammierung 2
S MongoDB - Abfrageergebnis in Array speichern Datenbankprogrammierung 2
B Denkanstoß bei Abschreibungstabelle in DB speichern Datenbankprogrammierung 0
temi Wie kann ich "Class" in einer DB speichern? Datenbankprogrammierung 2
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
D foreignkey abfragen und speichern Datenbankprogrammierung 74
L HSQLDB Bilder in der DB speichern? Datenbankprogrammierung 6
M byte-Array in Datenbank speichern Datenbankprogrammierung 2
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S CSV File in Datenbank speichern!? Datenbankprogrammierung 1
L Werte in Datei speichern Datenbankprogrammierung 16
E MySQL Große Datenmengen reibungslos speichern für Gameserver Datenbankprogrammierung 6
M MySQL Einzelne Systeminformationen speichern Datenbankprogrammierung 2
AMStyles Kann Wert nicht speichern (MAX VALUE) Datenbankprogrammierung 9
H MySQL Datenbank-Settings speichern Datenbankprogrammierung 10
5 Image in Datenbank speichern Datenbankprogrammierung 11
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
pg1337 PostgreSQL Werte auf Eingabe speichern Datenbankprogrammierung 23
B Feld in einer @Entity als Text speichern Datenbankprogrammierung 5
D MySQL Bild aus DB auslesen und auf FTP Speichern Datenbankprogrammierung 7
G Oracle Speichern der Reihenfolge Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
S Verschiedene Informationen gleichen Typs speichern und auslesen Datenbankprogrammierung 4
T Derby/JavaDB byte[] in Datenbank speichern [JPA] Datenbankprogrammierung 10
Z MySQL werte von formular speichern Datenbankprogrammierung 3
D Hibernate: ArrayList in DB speichern und auslesen Datenbankprogrammierung 4
G Lange Texte in der DB speichern Datenbankprogrammierung 3
S Textur in DB speichern Datenbankprogrammierung 7
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
K PostgreSQL PDF-Dateien in Datenbank speichern und auslesen Datenbankprogrammierung 4
B Japanische Zeichen in MSSQL-DB speichern Datenbankprogrammierung 2
H Datenbank in Datei speichern / laden Datenbankprogrammierung 8
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5
R Tabelle Updaten aber auch Speichern Datenbankprogrammierung 2
S Hibernate subtabellen speichern Datenbankprogrammierung 2
T Designfrage: DB-Daten direkt oder verzögert speichern Datenbankprogrammierung 2
Dragonfire Daten aus jsp Datei in datenbank speichern Datenbankprogrammierung 15
O vernümpftig Datumsangabe in mySQL DB speichern und auslesen Datenbankprogrammierung 4
T Daten aus DB in variable Zahl an Variablen speichern Datenbankprogrammierung 18
C MP3 in DB als Blob, wieder auslesen und als MP3 speichern??? Datenbankprogrammierung 8
N Sortierte Liste in Datenbank speichern? Datenbankprogrammierung 3
S BLOB in Datei speichern Datenbankprogrammierung 8
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
A EMails in JavaDB speichern Datenbankprogrammierung 4
S Hibernate Blob mit Stream speichern Datenbankprogrammierung 3
D Datum vor 1756 speichern Datenbankprogrammierung 2
W XML Klasse in Datenbank speichern? Datenbankprogrammierung 5
H Text formatiert in MySQL DB speichern? Datenbankprogrammierung 3
O Vector als Blob in Oracle Datenbank speichern Datenbankprogrammierung 3
S Bilder in DB speichern oder lieber doch im Filesystem? Datenbankprogrammierung 4
G Objekte in Datenbank speichern? Datenbankprogrammierung 6
T Wie kann ich Blobs (Bilder) in einer Datei speichern? Datenbankprogrammierung 2
P Klasse in Datenbank speichern Datenbankprogrammierung 4
Y Hibernate - Bild speichern Datenbankprogrammierung 4
L Postgres kann kein Datum speichern Datenbankprogrammierung 5
D Content einer email in sql-datenbank speichern? Datenbankprogrammierung 4
S Vordefinierte Queries aufrufen und neue speichern. Datenbankprogrammierung 5
M MM.YYYY als Datum speichern Datenbankprogrammierung 4
B Icon in Datenbank speichern Datenbankprogrammierung 4
S Integerwert auswerten und als Variable speichern Datenbankprogrammierung 2
A PreparedStatement im Servlet - Referenz speichern Datenbankprogrammierung 3
P [Hibernate] Objekt laden, Id ändern und speichern? Datenbankprogrammierung 2
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
A SQL Datenbankabfrage in Array speichern Datenbankprogrammierung 3
M Datum in Datenbank speichern Datenbankprogrammierung 3
L persistentes Speichern von Daten in der HSQLDB ? Datenbankprogrammierung 5
M Objekt in Datenbank speichern Datenbankprogrammierung 2
S Wie Daten speichern? Datenbankprogrammierung 5
K Ergebnis aus SQL Abfrage in Array speichern Datenbankprogrammierung 3
F Sauber das Datum Speichern Datenbankprogrammierung 2
B double Array in MySQL Datenbank speichern/laden Datenbankprogrammierung 12
S ImageIcon in ein ByteArray speichern für in die DB Datenbankprogrammierung 2
E BufferedImage in hsqldb speichern Datenbankprogrammierung 5
L Datum (String) in MySQL-Tabelle (date) speichern Datenbankprogrammierung 4
L DB Felder in einem Array speichern und wieder auslesen Datenbankprogrammierung 11
R Daten aus ResultSet in HashMap speichern Datenbankprogrammierung 3
G speichern und auslesen von daten aus einer datenbank Datenbankprogrammierung 8
welterde Objekte in Mysql Datenbank speichern Datenbankprogrammierung 3
L Objekt in die DB speichern und die Id zurückgeben Datenbankprogrammierung 2
EagleEye Bild in Datenbank speichern und wieder anzeigen Datenbankprogrammierung 6
L ImageIcon in/aus Datenbank speichern/lesen Datenbankprogrammierung 4
EagleEye speichern eins pfades Datenbankprogrammierung 2
M Objekte in Datenbank speichern Datenbankprogrammierung 8
X Vectoren in mySQL-Datenbank speichern und auslesen Datenbankprogrammierung 8
V Exception beim Speichern von eingegebenen Daten in Tabelle Datenbankprogrammierung 2
L Array / Bitset in Mysql-DB speichern Datenbankprogrammierung 3
R Bild in MySql speichern Datenbankprogrammierung 1
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17

Ähnliche Java Themen


Oben