Streams for runaways

Rowdy

Mitglied
Hallo zusammen. Ich habe angefangen mich mit In- und OutputStreams zu beschäftigen und verstehe noch nicht wo mein Fehler liegt.

1. Ich habe noch keine Antwort gefunden auf die Frage, ob es möglich ist ein Objekt so zu speichern, dass wenn ich meinen PC runter- und wieder hochfahre, es immernoch vorhanden und wieder einlesbar ist.

2. Ich habe nun zunächst mal den OutputStream implementiert und hab eben das oben genannte überprüft indem ich das Objekt einfach als .txt-Datei gespeichert habe, was, wenn es geht, nicht funktioniert, da sich die Text-Datei nicht finden lässt. Hier der Code, ich hoffe mir kann jemand weiterhelfen.

Gruß Rowdy

Java:
public class GUI{

    private static Calc info;
    public GUI()
    {
        Werte werte = new Werte(); // Werte die einer "Rechenklasse" Calc übergeben werden
        info = new Calc(werte); // Die Klasse die rechnet

        JFrame frame = new JFrame("Apokalypse"); //GUI hab ich wegen der Übersicht rausgeschnitten 
        frame.setVisible(true);
        frame.pack();

        frame.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(WindowEvent winEvt) {
                int save = JOptionPane.showConfirmDialog(null,"Wirklich Beenden?", "Speichern", JOptionPane.YES_NO_OPTION); //Wenn das GUI geschlossen wird soll gespeichert werden
                if(save == JOptionPane.YES_OPTION){speichern("Test");}}}); //Beim schließen des GUIs speichern
    }

Ignoriert wieso hier wem was übergeben wird und wieso speichern immer Test übergeben wird etc.
GUI bekommt eben ein Objekt der Klasse Calc und Calc besitzt ein Objekt der Klasse Werte und eine Liste.

Hier noch speichern()

Java:
    private void speichern(String name)
    {
        String pfad = (name + ".txt");
        FileOutputStream fos = null;
        
        try
        {
            fos = new FileOutputStream(pfad);
            ObjectOutputStream oos = null;
        
            try
            {
                oos = new ObjectOutputStream(fos);
                oos.writeObject(info);
            }
            catch(IOException ex){ex.printStackTrace();}
            finally
            {
                try{if(oos!=null){oos.close();}}
                catch(IOException ex){ex.printStackTrace();}
            }
        }
        catch(FileNotFoundException ex){ex.printStackTrace();}
        finally
        {
            try{if(fos!=null){fos.close();}}
            catch(IOException ex){ex.printStackTrace();}
        }
    }
}
 

nrg

Top Contributor
1. Ich habe noch keine Antwort gefunden auf die Frage, ob es möglich ist ein Objekt so zu speichern, dass wenn ich meinen PC runter- und wieder hochfahre, es immernoch vorhanden und wieder einlesbar ist.

z.b. serialisierung oder datenbanken. aber irgendwie verstehe ich nicht, warum du fragst, wenn du es im code unten bereits machst ???:L

2. Ich habe nun zunächst mal den OutputStream implementiert und hab eben das oben genannte überprüft indem ich das Objekt einfach als .txt-Datei gespeichert habe, was, wenn es geht, nicht funktioniert, da sich die Text-Datei nicht finden lässt. Hier der Code, ich hoffe mir kann jemand weiterhelfen.

das fettgedruckte verstehe ich nicht aber ich glaube, ich weiß, worauf du hinaus willst :D. die datei wird in deinem working directory gespeichert. um das herauszufinden kannst du im code mal sowas wie
Java:
System.out.println(new java.io.File(".").getAbsolutePath());
schreiben. dort liegt dann auch die datei. ansonsten könntest du für den ersten test einfach mal einen absoluten pfad nehmen.

edit @vorposter: wahrscheinlich ist info noch irgendein member. der name ist ja nur der name der ausgabedatei. glaube kaum, dass er den serialisieren möchte :)
 

Rowdy

Mitglied
genau info soll serialisiert werden ich habe nur es als txt gespeichert weil ich die datei wenn ich sie als tmp gespeichert habe hinterher nicht im temp-ordner gefunden habe, da sie vermutlich direkt gelöscht wurde wenn das programm schließt. jetzt finde ich schonmal die datei wenn ich den Pfad angebe aber alle Objekte von anderen Klassen die info beinhaltet werden nicht mitgespeichert =/

edit: mein Problem lag darin, dass ich nicht gerafft hab, dass Objekte natürlich auch als txt-Datei eingelesen werden können und ich dachte es gäb irgendein Format dafür oder man könnte die nur als tmp speichern oder so, was wie ich selber merke ziemlicher quatsch ist :D sowas wie .obj :D
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
edit: mein Problem lag darin, dass ich nicht gerafft hab, dass Objekte natürlich auch als txt-Datei eingelesen werden können und ich dachte es gäb irgendein Format dafür oder man könnte die nur als tmp speichern oder so, was wie ich selber merke ziemlicher quatsch ist :D sowas wie .obj :D

Das Format ist so oder so in der Datei. Vor allem (der) Windows(-explorer) macht sich einen Spass daraus, Dateien auf ihre Endung zu überprüfen. Wenn ich unter Linux in Nautilus eine Datei von .png nach .foobar umbenenne, dann erkennt er sie immernoch als PNG, da er gewisse Prüfungen in den Dateien macht.
Wenn du aber direkt [c]x.y[/c] laden willst, dann ist das sowieso kein Problem - du kennst den Pfad bereits.
 

Rowdy

Mitglied
Hatte ein simplen Fehler und die NullPointerException war nicht auf die Objekte von info bezogen sondern auf einen nicht initialisierten ObjectInputStream, blöder Fehler klappt aber jetzt alles. Vielen Dank für eure Hilfe.

Gruß Rowdy
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Parallel Streams Java Basics - Anfänger-Themen 18
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
M Streams Java Basics - Anfänger-Themen 34
M Streams filter Java Basics - Anfänger-Themen 15
M generate Methode für Streams Java Basics - Anfänger-Themen 6
berserkerdq2 Java streams, wann nutze ich ::, also 2x Doppelpuntk bei Streams? Java Basics - Anfänger-Themen 5
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
B Collections Streams - Hilfestellung bei komplexer Struktur Java Basics - Anfänger-Themen 9
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
S Streams - kleinstes Element finden Java Basics - Anfänger-Themen 4
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
W Eclipse Autoformatierung für Streams ändern ? Java Basics - Anfänger-Themen 1
S Lambda Ausdrücke Streams Java Basics - Anfänger-Themen 6
I Streams Java Basics - Anfänger-Themen 12
N Frage zu Streams Java Basics - Anfänger-Themen 3
U Input/Output Unterschiede Streams Java Basics - Anfänger-Themen 2
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
C system.out.printf mit streams benutzen Java Basics - Anfänger-Themen 7
C Methoden Sortieren mit Streams: Auf- und absteigend Java Basics - Anfänger-Themen 2
O Streams und die flush Methode Java Basics - Anfänger-Themen 3
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
M Input/Output Streams Java Basics - Anfänger-Themen 5
T Klassen wie funktionieren Streams, warum bekomme ich int zurück? Java Basics - Anfänger-Themen 2
J Java 8 Streams - Frage zu "reduce" Java Basics - Anfänger-Themen 6
Sogomn Input/Output Reader, Writer und Streams Java Basics - Anfänger-Themen 6
T Fehler mit Streams! Java Basics - Anfänger-Themen 2
T Input/Output Object Streams Java Basics - Anfänger-Themen 6
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6
I Java Streams Java Basics - Anfänger-Themen 6
RySa Input/Output Datei kann nicht gelöscht werden, obwohl Streams geschlossen sind. Java Basics - Anfänger-Themen 2
D Input/Output streams und readLine() Java Basics - Anfänger-Themen 3
firefexx Input/Output close() bei mehreren Streams Java Basics - Anfänger-Themen 5
M Frage zu Streams Java Basics - Anfänger-Themen 9
C try finally - Streams schließen Java Basics - Anfänger-Themen 7
M Streams und Sockets Java Basics - Anfänger-Themen 3
M file löschen, streams evtl noch offen Java Basics - Anfänger-Themen 7
G Character-orientierte File-Streams mit der Klasse FileReader Java Basics - Anfänger-Themen 5
S Piped Streams / Threads Java Basics - Anfänger-Themen 6
H Frage zu Byte-Streams Java Basics - Anfänger-Themen 2
P Streams mit Sockets Java Basics - Anfänger-Themen 7
V Performance Lesen und Schreiben aus/in Streams Java Basics - Anfänger-Themen 4
C RandomAccessFile vs. Streams Java Basics - Anfänger-Themen 5
M Probleme mit den Streams Java Basics - Anfänger-Themen 2
G streams schließen Java Basics - Anfänger-Themen 2
P Fragen zu STreams Java Basics - Anfänger-Themen 5
M Streams Java Basics - Anfänger-Themen 4
H Streams etc. erster Versuch Zeilen aus einer Datei zu lesen Java Basics - Anfänger-Themen 6
? Streams Java Basics - Anfänger-Themen 2
R RandomAccessFile mit anderen Streams verbinden Java Basics - Anfänger-Themen 5
G Rekursionsaufgabe mit Streams Java Basics - Anfänger-Themen 5
J Problem mit Streams Java Basics - Anfänger-Themen 15
L Streams und Reader/Writer Java Basics - Anfänger-Themen 8
K Frage zu SdtOut streams bzw. Socket Programmierung Java Basics - Anfänger-Themen 3
M Streams, read and write Java Basics - Anfänger-Themen 2
M Streams Java Basics - Anfänger-Themen 2
B Streams wollen scheinbar nicht schließen Java Basics - Anfänger-Themen 6
S Umwandlung eines Character-Streams in ein Image Java Basics - Anfänger-Themen 17
E Probleme mit Streams Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben