Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 17:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[JAVA] ObjectInputStream aus Datei laden

Discussion on [JAVA] ObjectInputStream aus Datei laden within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
[JAVA] ObjectInputStream aus Datei laden

Hallo. Ich habe eine Datei und durch ObjectInputStream speicher ich in die Datei und lade daraus dann was ich gespeichert habe.

PHP Code:
public static ArrayList<PersonpersonenListe = new ArrayList<Person>(); 
Speichern:

PHP Code:
    public static void personendaten_speichern(String pDateithrows IOException {
        
ObjectOutputStream outputStream null;
        
        try {
        
            
outputStream = new ObjectOutputStream(new FileOutputStream(pDatei));
            
            for (
int i 0personenListe.size(); i++) {
                
Person p1 personenListe.get(i);
                
outputStream.writeObject(p1);
            }
        } catch (
FileNotFoundException ex) {
            
ex.printStackTrace();
        } catch (
IOException ex) {
            
ex.printStackTrace();
        } 
finally {
            try {
                if (
outputStream != null) {
                    
outputStream.flush();
                    
outputStream.close();
                }
        } catch (
IOException e) {}
        }
    } 

Laden:

PHP Code:
    public static void personendaten_laden(String pDateithrows IOException {
        
ObjectInputStream inputStream null;
        
        try {
            
inputStream = new ObjectInputStream( new FileInputStream(pDatei));
            
            while(
inputStream.readObject() != null) { // Die Schleife
                
Person p1 = (PersoninputStream.readObject();
                
personenListe.add(p1);
            }
        } catch ( 
IOException e ) { System.err.println); }
        catch ( 
ClassNotFoundException e ) { System.err.println);
        } 
finally {
            try { 
inputStream.close();
            } catch ( 
Exception e ) { }
        }
        
    } 
Speichern geht, aber beim laden weiß ich nicht, wie ich eine Schleife machen soll. Hab gelesen, dass man eine unendliche Schleife machen kann mit != null wie oben gemacht und dann die EOFException abfangen soll um den Loop zu stoppen. Das geht bei mir aber nicht bzw. es wird halt nur ein Object geladen weil ich keinen Loop bekomme und wenn ich einen unendlichen mache dann stimmt auch iwas nicht ich glaube es wird dann auch nur eins geladen... in dem Beispiel hab ich das mal raus genommen weil ich grade mit den ganzen Exceptions nicht klar komme ._. ein Catch nach dem anderem...

Meine bitte ist also ob mir jemand sagen kann wie ich das so hin bekomme, dass ich auch aus der Datei laden kann.

PS: Werde morgen mal ausprobieren, danke Saedelaere!
Warnuk3r is offline  
Old 03/30/2014, 23:34   #2
 
Saedelaere*'s Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 828
Received Thanks: 1,395
Ewig nichts mit Java gemacht, aber vielleicht so:
Code:
Person p1 = (Person) inputStream.readObject();
while(p1 != null) { 
  personenListe.add(p1);
  p1 = (Person) inputStream.readObject();
}
BTW: Ist die ArrayList nicht selbst auch ein Serializable? Wenn ja, sollte es funktionieren, dass du das komplette Listenobjekt mit einem einzigen writeObject()/readObject() Aufruf speicherst/ausliest.
Saedelaere* is offline  
Thanks
2 Users
Old 03/31/2014, 10:02   #3
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Vielen dank Saed, ist echt ein guter Ansatz p1 != null zu setzen, ich habs direkt mit objectRead versucht und das geht ja nicht.

Es funktioniert jetzt alles, aber wenn ich beim Menue den 4. Punkt auswähle (Daten laden dann sieht das folgendermaßen aus:

PHP Code:
Menuepunkt waehlen:
4
java
.io.EOFException

Daten wurden geladen

Das wird ausgegeben wegen:

PHP Code:
catch ( IOException e ) { System.err.println); } 
Wie sollte ich da jetzt verfahren? Soll ich versuchen die Meldung zu unterdrücken oder kann man am auslesen noch was verbessern, damit da nichts gelesen wird was auch nicht existiert? Das sagt ja die Exception... man liest nach dem Ende noch weiter..
Warnuk3r is offline  
Old 03/31/2014, 14:21   #4
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
dowhile is offline  
Thanks
1 User
Old 04/15/2014, 00:56   #5
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Jetzt fürs Speichern:

Wenn ich ObjectOutputStream und writeObject benutze, speichert er mir immer die Objekte Person rein. Jedoch soll ich jetzt pro Zeile nur eine Person haben in der erstellen Datei.

Hab etwas rumprobiert, aber kriege es nicht hin.... wie kann ich mit ObjectOutputStream zeilenweise alle Personen abspeichern?

Laut Aufgabe soll es auch mit einem Semilikolon oder Komma getrennt sein, das geht doch niemals mit ObjectOutput? o.O
Warnuk3r is offline  
Old 04/15/2014, 06:13   #6
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Du kannst das Objekt ja auch manuell speichern, also die Werte der Eigenschaften mit Komma getrennt in die Datei speichern. Beim Laden dann die Zeile lesen, am Komma trennen, Objekt erstellen und Werte setzen.
dowhile is offline  
Old 04/15/2014, 21:22   #7
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Benutze doch eine ForEach-Schleife und füge ein Kommata hinzu.
Zunft is offline  
Reply


Similar Threads Similar Threads
[Release] Exp Tabelle aus Txt datei laden 34k
02/04/2015 - Metin2 PServer Guides & Strategies - 65 Replies
Hey. hab heute nen großügigen, daher mal ne kleine lib für euch. Das Prinzip ist einfach: Es lädt die exp tabelle aus ner "textdatei" also kein nerviges rumwurschteln mehr in der game. Was ihr tun müsst: PS: das maximale Level wird abhängig von den Zeilen der exp_tabelle gesetzt, heist 107 zeilen = maximal-level 107
cmd text datei in java datei umwandeln
02/07/2013 - C/C++ - 2 Replies
hey leute weis jemand wie man eine text datei (editor datei) in eine java datei umwandel ich weiß das man das mit cmd machen kann (javav beehl aber wie kann ich auch die laufwerke zugreifen ? sry für die schlechte rechtschreibung LG
cmd text datei in java datei umwandeln
02/07/2013 - elite*gold Trading - 3 Replies
hey leute weis jemand wie man eine text datei (editor datei) in eine java datei umwandel ich weiß das man das mit cmd machen kann (javav beehl aber wie kann ich auch die laufwerke zugreifen ? sry für die schlechte rechtschreibung :D LG
[Java] Jar-Datei splitten
07/29/2012 - General Coding - 4 Replies
Hi ich spiele zZ ein bisschen mit Java rum und möchte eine Jar-Datei splitten. Ich habe davor 2 mal das selbe hallo_welt Programm durch einen Splitstring getrennt aneinander gehängt. Dazu der Code: public void combineFiles ( String file1, String file2, String output, String split ) { try { RandomAccessFile data1 = new RandomAccessFile ( file1, "r" ) ; RandomAccessFile data2 = new RandomAccessFile ( file2, "r" ) ;
Vb.Net Datei aus dem Internet laden und starten?
06/16/2007 - .NET Languages - 8 Replies
Wollte mal ein Projekt anfangen nur weiß ich nicht so ganz wie ich es umsätzen kann.



All times are GMT +1. The time now is 17:49.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.