/** * Kysytään käyttäjältä tiedostonimi, talletetaan piirustus kyseiseen * tiedostoon. Serialisoidaan viivat sisältävä vektori ObjectOutputStream- * oliolla. Serialisoidut oliot pakataan GZIPOutputStream-oliolla. Pakattu * ja serialisoitu data kirjoitetaan tiedostoon FileOutputStream-oliolla. * Ei pidä unohtaa tyhjentää ja sulkea virtaa. */ public void save() { // Luodaan tiedostodialogi, jolla kysytään käyttäjältä tiedostonimi. FileDialog f = new FileDialog(frame, “Save Scribble”, FileDialog.SAVE); f.show(); // Näytetään dialogi. Kutsusta palataan // pois vasta kun dialogi kuitataan. String filename = f.getFile(); // Pyydetään käyttäjän vastaus. if (filename != null) { // Jos ei painettu Peruuta-nappia. try { // Luodaan piirustuksen talletuksessa tarvittavat virrat. FileOutputStream fos = new FileOutputStream(filename); // Talletetaan tiedostoon GZIPOutputStream gzos = new GZIPOutputStream(fos); // Pakattuna ObjectOutputStream out = new ObjectOutputStream(gzos); // Oliot out.writeObject(lines); // Kirjoitetaan koko vektori. out.flush(); // Tulos pitää aina tyhjentää. out.close(); // Ja sulkea virta. } // Tulostetaan poikkeukset. Nämä pitäisi kyllä näyttää dialogissa... catch (IOException e) { System.out.println(e); } } }