/* Description: Author: Students in CS231 Date: April 2003 */ import java.io.*; import java.awt.*; // Stores objects in binary format public class DBStorage { public String write(MusicDataBase c) { FileDialog fd = new FileDialog(new Frame(), "Where would you like it?", FileDialog.SAVE); fd.setDirectory("."); fd.setFile("*.*"); fd.show(); String filename = fd.getFile(); System.out.println("Saving Filename = " + filename); try { File data = new File(filename); ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(data)); out.writeObject(c); out.close(); return "Database saved to file " + filename; } catch (Exception e) { return "Error saving to " + filename + ". Database not saved.\n" + e; } } public MusicDataBase read() { FileDialog fd = new FileDialog(new Frame(), "Select Input File"); fd.setFile("input"); fd.show(); String filename= fd.getDirectory()+fd.getFile(); System.out.println("Reading Filename = " + filename); MusicDataBase c = null; File data = new File(filename); if (data.exists()) { c = read(data, filename); } else { System.out.println("File " + filename + " not found. Creating new database."); c = new MusicDataBase(); } return c; } public MusicDataBase read(File data, String filename) { MusicDataBase c = null; try { ObjectInputStream in = new ObjectInputStream( new FileInputStream(data)); c = (MusicDataBase) in.readObject(); in.close(); System.out.println("File " + filename + " read."); } catch (ClassNotFoundException e) { System.out.println("Class not found. Creating new Database.\n" + e); } catch (IOException e) { System.out.println("Error reading file " + filename + "\n" + e); } return c; } }