Java und Speichern ?

Status
Nicht offen für weitere Antworten.

Haniman

Mitglied
hallo

wie kann ich denn in meinem Java programm etwas abspeichern, so das ich beim nächsten start wieder darauf zugreifen kann ?

Am besten wäre wenn ich eine Array irgendwie abspeichern könnte. oder muss ich das in einer Textdatei machen ? aber das is dann so schwierig wieder abzurufen und kompliziert.

muss man für sowas Datenbanken benutzen ?
nach was muss ich da suchen oder gibts vieleicht ein tutorial ?

vielen dank schonmal
 
B

Beni

Gast
Mein Liebling:
Code:
// Am Ende des Programmes zum Schreiben:
double[] array = ... // der wird gespeichert

FileOutputStream fout = new FileOutputStream( "datei" );
DataOutputStream out = new DataOutputStream( fout );

out.writeInt( array.length );
for( int i = 0; i < array.length; i++ )
  out.writeDouble( array[i] );

out.close();

///////////////////////////////////
// Beim Start des Programmes um zu lesen

FileInputStream fin = new FileInputStream( "datei" );
DataInputStream in = new DataInputStream( fin );

double[] array = new double[ in.readInt() ];
for( int i = 0; i< array.length; i++ )
  array[i] = in.readDouble();

in.close();

// array - wurde gelesen

ObjectInput/OutputStream ist auch eine Variante, ich würde die aber erst empfehlen, wenn du weisst was sie machen :arrow: :###
 

Acha

Bekanntes Mitglied
Hätte ich auch vorgeschlagen, über eine Datei etwas abzuspeichern. Eine Datenbank zu benutzen, ist doch schon wieder eine Klasse höher.

Aber was mich interessiert:
Woran hast Du denn gedacht? Was gibt es denn noch, außer Dateien und Datenbanken?

MFG

Acha
 

Haniman

Mitglied
ja nee. ich meinte schon eine Datei oder Datenbank. Hab auch keine Ahnung was es sonst gibt :)

Aber ich hab noch ein Problem mit dem code oben und zwar: Was muss ich denn da bei "Datei" eintragen.
In dem Buch, dass ich hab schreibt man nur in eine Text datei also in Text.txt oder so.
Ich hab gestern noch irgendwas von XML Datein gelesen.

und kann ich vieleicht auch eine ganze Klasse inklusive seiner static variablen speichern? Das wäre noch besser als nur das Array zu speichern. :)

Könnt ihr mir vieleicht eine Internetseite empfehlen auf der Java erklärt wird mit beispielen und tutorials und so?
 

Haniman

Mitglied
Ahh vielen dank.
das Java ist ne Insel buch scheint ja toll zu sein ich glaub das kauf ich mir.

aber es wär trotzdem cool wenn mir noch wer sagen könnte was bei "Datei" hin muss, dann kann ich gleich weitermachen :)
 

L-ectron-X

Gesperrter Benutzer
Du brauchst es nicht kaufen, du kannst es dort von der Webseite kostenlos herunterladen oder direkt online benutzen.
Es sei denn du willst Papier in den Händen halten.

Zum Thema: Stichwort Objektserialiserung. Kannste gleich nachlesen. ^^
 
B

Beni

Gast
Der Pfad zur Datei muss da hin. "datei" ist z.B. auch ein gültiger Pfad, aber du kannst auch "C:/blabla/x.dat" schreiben wenn du willst.

btw: Es gibt keinen Unterschied zwischen Textdateien und anderen Dateien, die Unterscheidung geschieht erst durch das Programm (beide Dateien sind erstmals bedeutungslose Byte-Arrays :wink:)
 
B

Beni

Gast
Nein, Endungen müssen bei der BFE (Behörde für Endungen) beantragt werden. Das kann ganz schön teuer werden, also überleg dir im vorraus wie deine Dateien enden sollen.
Die Behörde trägt die Endungen in ein Register ein, und verhindert so, dass jemand anders die Endung benutzen kann. Bei einem Update deines Betriebssystemes wird jeweils auch das aktuelle Register auf dein PC geladen, und so findet man jeweils pro Endung das richtige Programm.













Und wer das glaubt ist selbst schuld :bae:
 

Haniman

Mitglied
ich muss jetzt einfach nochma was fragen.
ich bin schon die ganze zeit am rumprobieren. also ich kann jetzt in meinem programm ganz locker Strings speichern und auch das aktuelle datum und halt alle primitiven datentypen.
wenn ich nun aber meine eigene klassen serialisieren will kann ich sie zwar abspeichern und auch wieder laden, aber nur zur laufzeit des programms, wenn ich es beeende geht alles wieder weg, während das datum ganz normal gespeichert wird und auch beim nächsten start noch da ist.
woran liegt das.
muss ich in die Klasse eine Methode schreiben?
und wie mach ich eine klasse wirklich persistent ? ich hab mir das in dem Java buch von oben (java is ne insel) durchgelesen werd aber nicht ganz schlau daraus.

wäre echt toll wenn mir das mal jemand erklären könnte bitte :)

Diese beiden methoden benutzte ich und anstelle des Strings hab ich meine Klasse eingegeben.

Code:
static void serialize( String filename )
  {
    try
    {
      FileOutputStream file = new FileOutputStream( filename );
        ObjectOutputStream o = new ObjectOutputStream( file );
          o.writeObject  ( "Today" );
        o.writeObject  ( new Date() );
      o.close();
    }
    catch ( IOException e ) { System.err.println( e ); }
  }
static void deserialize( String filename )
  {
    try
    {
      FileInputStream file = new FileInputStream( filename );
      ObjectInputStream o = new ObjectInputStream( file );
      String string = (String) o.readObject();
      Date date = (Date) o.readObject();
      o.close();
      System.out.println( string );
      System.out.println( date );
    }
    catch ( IOException e ) { System.err.println( e ); }
    catch ( ClassNotFoundException e ) { System.err.println( e ); }
  }
 

Haniman

Mitglied
ja das hab ich gemacht, das speichern funktioniert ja, aber halt nur wärend der laufzeit, kA warum.
aber ich glaube mein fehler liegt daran, dass ich die static variablen der Klasse speichern will und die werden dabei ja irgendwie nicht gespeichter weil die zu der classe gehören und nicht zum object oder so.


gibt es denn keine möglichkeit static variablen zu speichern? mein ganzes programm baut darauf auf :(
 

Haniman

Mitglied
Ja du hast wahrscheinlich recht das war schlecht geplant. das is mein erstes größeres programm.

aber das muss ja eigentlich auch irgendwie gehn.
also ich hab jetzt gemacht was du gesagt hast. Ich hab mir ne klasse speichern geschrieben, in dessen konstruktor ich Instanzen von den static varialben mache. aber wenn ich dann speichern will bekomme ich diese fehler meldeung

java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.jdesktop.layout.GroupLayout

was ist den dieses GroupLayout?

und beim laden dann
java.io.NotSerializableException: org.jdesktop.layout.GroupLayout

hast du ne ahung wo der felher liegt ? wäre echt toll :)

Code:
public class Speichern implements Serializable{
    
    Klasse Le1;
    
    /** Creates a new instance of Speichern */
    public Speichern() {

        this.Le1 = StatischeInstanz (von Klasse);
        
    }
    
    static void speichern( String filename ){
    try{
        
      FileOutputStream file = new FileOutputStream( filename );
        ObjectOutputStream o = new ObjectOutputStream( file );
        
           o.writeObject  ( new Speichern() );
        o.writeObject  ( new Date() );
      o.close();
      System.out.println("gespeichert");
    }
    catch ( IOException e ) { System.err.println( e ); }
  }
  
  static void laden( String filename ){
    try{
        
      FileInputStream file = new FileInputStream( filename );
      ObjectInputStream o = new ObjectInputStream( file );
      
      Speichern save = (Speichern) o.readObject();
      
      Date date = (Date) o.readObject();
      o.close();
      System.out.println(save.Le1.Methode,dieStringzurückgibt);
      System.out.println( date );
      System.out.println( "geladen" );
    }
    catch ( IOException e ) { System.err.println( e ); }
    catch ( ClassNotFoundException e ) { System.err.println( e ); }
  }
    
}
 

Leroy42

Top Contributor
Haniman hat gesagt.:
Code:
  static void laden( String filename ){
    try{
    ...
      Speichern save = (Speichern) o.readObject();
      Date date = (Date) o.readObject();
      ...
    }
    catch ( IOException e ) { System.err.println( e ); }
    catch ( ClassNotFoundException e ) { System.err.println( e ); }
  }
LOL
:D Jetzt verstehe ich endlich warum du die Daten nach Beenden des Programms nicht mehr lesen kannst :cool:

Du kannst sie schon lesen, speicherst sie aber in 2 lokalen Variablen deiner laden()-Methode.
Die haben natürlich nichts gemein mit deinen eigentlichen Variablen save und date die durch
das Einlesen nicht verändert werden und somit leer bleiben.

Währen das Programm läuft, sind deine Daten nur darum wieder da. weil sie ja bereits
vor dem "Lesen" Inhalt hatten und dieser nicht gelöscht wurde.

Leider kann ich dir bei deiner eigentlichen Frage nicht helfen :(
Mir ist nicht klar, was diese Fehlermeldung bedeuten kann.
 

Haniman

Mitglied
danke für alle hilfen.
ich habs jetzt hinbekommen. wens interessiert:

ich hab in meine Klasse eine Speichern methode eingebaut, die alle attrribute einzeln einliest und in die datei schreibt.
Jetzt kann ich von jeden statischen variable diese methode aufrufen und dann mit der Laden methode aus meiner MainKlasse alles später wiederherstellen. :)

und das tollste es funktioniert :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
N Java Objekt speichern Java Basics - Anfänger-Themen 11
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
K OOP duplicate class, öffentliche Klasse in unterschiedlichen Java Dateien speichern? Java Basics - Anfänger-Themen 3
M java .jpg aus URL adesse speichern Java Basics - Anfänger-Themen 8
C java programm mit Texten, speichern und so Java Basics - Anfänger-Themen 3
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
R Java als externes Programm speichern Java Basics - Anfänger-Themen 3
T Java Webstart soll eine Datei speichern Java Basics - Anfänger-Themen 2
S Speichern von Datein in Java Java Basics - Anfänger-Themen 3
W Speichern und Laden in Java Java Basics - Anfänger-Themen 9
C Bäume in Java. Knoten in Array speichern Java Basics - Anfänger-Themen 3
N speichern und laden im Java Java Basics - Anfänger-Themen 5
V Speichern in Java Java Basics - Anfänger-Themen 9
B Einfaches Speichern und Laden in Java? Java Basics - Anfänger-Themen 3
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben