Archief - BlueJ object wegschrijven

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

rore

Legacy Member
Hallo,

Ik heb al een paar vragen gesteld over dit programmatje dat ik ben aan het maken, en heb nu een laatste probleem. Ik heb een ObjectWriter:

Code:
import java.io.*;        
import java.io.IOException;             
import java.io.ObjectOutputStream;      
import java.util.NoSuchElementException;
import java.util.Scanner;
import java.util.ArrayList;   
public class ObjectWriter
{
    private ObjectOutputStream output;
    private Database database;
    public ObjectWriter(Database database)
    {
        this.database=database;
    }
    public void openFile()
    {
        try
        {
            output = new ObjectOutputStream(new FileOutputStream("databaseDVDs.ser" ));
        }
        catch(IOException ioException)
        {
            System.out.println("zo werkt dat niet he!");
        }
    }
    public void addRecords(Database dataBase)
    {
        Database record;
        if(dataBase == null)
        {
            record = database;
        }
        else
        {
            record = dataBase;
        }
        Scanner input = new Scanner( System.in);
        try
        {
            output.writeObject( record );
        }
        catch(IOException ioException)
        {
            System.out.println("ERROR!!!");
            return;
        }
        catch(NoSuchElementException elementExcepetion)
        {
            System.out.println("Nein nein nein!");
        }
    }
    public void closeFile()
    {
        try
        {
            if(output != null)
            {
                output.close();
            }
        }
        catch(IOException ioException)
        {
            System.out.println("Error closing file.");
            System.exit(1);
        }
    }
}




en een ReadObject:

Code:
import java.io.EOFException;
import java.io.FileInputStream;       
import java.io.IOException;                               
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class ReadObject
{
    private ObjectInputStream input;
    public ReadObject()
    {
    }
    public void openFile()
    {
        try
        {
            input = new ObjectInputStream(new FileInputStream("databaseDVDs.ser"));
        }
        catch(IOException ioException)
        {
            System.out.println("ERROR!!!");
        }
    }
    public Database readRecords()
    {
        Database record = null;
        try
        {
                record = (Database) input.readObject();
        }
        catch ( EOFException endOfFileException )
        {
            System.out.println("Nieje");
        } // end catch
        catch ( ClassNotFoundException classNotFoundException )
        {
            System.out.println( "Unable to create object." );
        } // end catch
        catch ( IOException ioException )
        {
            System.out.println("Error during read from file");
        }
        return record;
    }
    public void closeFile()
    {
        try
        {
            if( input != null)
            input.close();
        }
        catch ( IOException ioException )
        {
            System.out.println( "Error closing file." );
            System.exit( 1 );
        }
    }
}

geschreven aan de hand van een voorbeeld op het internet. Spijtig genoeg werkt het niet, en ik weet niet wat er verkeerd is. Kan iemand helpen?
Wanneer ik het programma binnen BlueJ krijg ik de ERROR!!! van de methode AddRecords.

Alvast bedankt!

Jerre Muesli

Legacy Member
Doe jezelf een plezier en laat je try/catch block iets nuttigs printen.
Zo moet je niet printen: ERROR!!! maar wel bvb:

Code:
try {
 output.writeObject(record);
} catch (IOException ex) {
 System.out.println(ex.getMessage());
//of
 ex.printStackTrace();
}

Op deze manier weet jijzelf wat er mis loopt.

Fraggie

Legacy Member
Staat de serialVersionUID vast van je Database object?

En zoals ik al eerder zei: best gewoon een database gebruiken. Neem nu bv een SQLite database dat je beheert vanuit firefox. Gewoon 1 file onderhouden, geen service draaien etc..

Jerre Muesli

Legacy Member
Als je even de code bekijkt zou het me straf lijken als hij met een database overweg kan..

rore

Legacy Member
Fraggie, dat is inderdaad een goed idee, als dit doenbaar is voor iemand die daar nog nooit mee gewerkt heeft. Het schrok me daarom af, omdat het enige dat ik echt weet van informatica hetgene is wat ik geleerd heb in een vak informatica.
Denk je dat ik als 'leek' met SQLite zal kunnen werken? Ik ben normaal wel redelijk snel met zo'n dingen weg.
Ik heb wel al veel gehad aan dit forum =) De database werkt eigenlijk perfect, behalve voor dit gedeelte. Maar dit is misschien gewoon te moeilijk.

rore

Legacy Member
Jerre, inderdaad, ik ben geen informaticus. You got me. Ik probeer mezelf maar iets nuttigs bij te leren.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan