Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Calendar;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.ObjectOutputStream;
- import java.io.FileInputStream;
- import java.io.ObjectInputStream;
- /**
- * @(#)Kirjarekisteri.java
- *
- *
- * @author Mikko Pitkänen
- * @version 1.00 2012/2/15
- *Toimii käyttöjärjestelmänä. Käyttäjä valitsee haluttavat toiminnot ja ohjelma suorittaa ne.
- *@param kirjalista luodaan lista
- *@param bListaTallessa tarkastetaan onko lista tallennettu
- */
- public class Kirjarekisteri
- {
- private static KirjaLista lista = new KirjaLista();
- /**Boolean tyyppinen muuttuja, joka tutkii onko lista tallennettu ennnekuin sille tehdään tärkeitä muutoksia */
- private static boolean bListaTallessa = true;
- public static void main(String [] args)
- {
- int iValinta = 0; //0 = lopetus. > 0 valinta
- do
- {
- iValinta = valikko();
- switch(iValinta)
- {
- case 0: System.out.println("Ohjelma päättyy"); break;
- case 1:LisaaKirja(); break;
- case 2: poistaKirja(); break;
- case 3:hae(); break;
- case 4: tulosta(); break;
- case 5: avaaLista();break;
- case 6: tallennaLista(); break;
- default : System.out.println("Virheellinen valinta"); break;
- }
- }while(iValinta > 0);
- }
- /**Lisaa kirja metodi, joka lisaa kirjan listaan
- *@param sNimi Kirjan nimi
- *@param sKirjnimi kirjailija nimi
- *@param iVuosi Julkaisuvuosi
- *@param iPv Lukupäivä
- *@param iKk Lukukuukausi
- *@param iKv Lukuvuosi*/
- public static void LisaaKirja()
- {
- String sNimi = "";
- do
- {
- System.out.println("Anna kirjan nimi");
- sNimi = Kysy.mjono();
- }while(!Kirja.tarkastaNimi(sNimi));
- System.out.println("Anna kirjailijan nimi");
- String sKirjnimi = Kysy.mjono();
- System.out.println("Anna julkaisuvuosi");
- int iVuosi = Kysy.kluku();
- System.out.println("Anna Lukupäivä");
- int iPv = Kysy.kluku();
- System.out.println("Anna lukukuukausi");
- int iKk = Kysy.kluku();
- System.out.println("Anna lukuvuosi");
- int iKv = Kysy.kluku();
- Calendar Luku = Calendar.getInstance();
- Luku.clear();
- Luku.set(iKv, iKk-1, iPv);
- try
- {
- Kirja lisattava = new Kirja(sNimi, sKirjnimi, iVuosi, Luku);
- lista.lisaaKirja(lisattava);
- }
- catch (Exception virhe)
- {
- System.out.println(virhe.getMessage());
- }
- bListaTallessa = false;
- }
- /** Poistaa kirjan listalta
- *@param Kirjailija saa arvokseen poistettavan kirjailijan nimen*/
- public static void poistaKirja()
- {
- System.out.println("Poistettavan kirjan kirjailija?");
- String Kirjailija = Kysy.mjono();
- lista.poistaKirja(Kirjailija);
- }
- /** hakee kirjan listalta kirjailijan nimen avulla
- *@param tekija saa arvokseen haettavan kirjailijan nimen*/
- public static void hae()
- {
- String tekija = "";
- do
- {
- System.out.println("Anna kirjailijan nimi");
- tekija = Kysy.mjono();
- String tulostettavat = lista.haeKirjat(tekija);
- System.out.println(tulostettavat);
- }while(tekija.length() < 1);
- }
- /* tulostaa listan oliot merkkijonona*/
- public static void tulosta()
- {
- if(lista.tulostaKirja() == null)
- {
- System.out.println("Lista on tyhjä");
- }
- else
- {
- System.out.println(lista.tulostaKirja());
- }
- }
- /** Avaa listan tiedostosta
- **/
- public static void avaaLista()
- {
- if(bListaTallessa == false)
- {
- System.out.println("Listalla on muutoksia tallentamatta!. Haluatko tallentaa tekemäsi muutokset?");
- String varmistus = Kysy.mjono();
- if((varmistus.charAt(0)) == 'K' || (varmistus.charAt(0)) == 'k')
- {
- tallennaLista();
- System.out.println("Tiedosto tallennettu. Jatketaan tiedoston avaamista");
- }
- else
- {
- System.out.println("tiedostoa ei tallennettu");
- }
- }
- File fTiedosto;
- boolean bHyvaTiedosto = true;
- /**Tarkastetaan onnistuuko tiedoston avaaminen
- *@Exception Tiedostoa ei löydy
- *@Exception Tiedosto on piilotettu
- *@Exception Tiedostoa ei voi lukea
- **/
- do
- {
- bHyvaTiedosto = true;
- System.out.println("Anna tiedoston nimi");
- String sTiedosto = Kysy.mjono();
- fTiedosto = new File (sTiedosto);
- if(!fTiedosto.exists() || !fTiedosto.isFile())
- {
- System.out.println("Tiedostoa ei löydy, anna toinen nimi");
- bHyvaTiedosto = false;
- }
- if(fTiedosto.isHidden())
- {
- System.out.println("Antamasi Tiedosto on piilotettu");
- bHyvaTiedosto = false;
- }
- if(!fTiedosto.canRead())
- {
- System.out.println("Antamaasi tiedostoa ei voi lukea");
- bHyvaTiedosto = false;
- }
- }while(bHyvaTiedosto == false);
- try
- {
- FileInputStream fisTiedosto = new FileInputStream(fTiedosto);
- ObjectInputStream oisTiedosto = new ObjectInputStream(fisTiedosto);
- lista = (KirjaLista)oisTiedosto.readObject();
- fisTiedosto.close();
- System.out.println("Lista avattu");
- }
- catch(Exception e)
- {
- System.out.println("Ongelma tiedosto käsittelyssä");
- }
- }
- /** On vastuussa tiedoston tallentamisesta
- *@Exception Tiedoston tallentaminen ei onnistu*/
- public static void tallennaLista()
- {
- /** Ilmaisee tiedoston nimeä*/
- String sTiedosto = "";
- File fTiedosto ;
- do
- {
- System.out.println("Anna tiedoston nimi");
- sTiedosto = Kysy.mjono();
- fTiedosto = new File (sTiedosto);
- if(fTiedosto.exists())
- {
- bListaTallessa = false;
- System.out.println("Tiedosto on jo olemamassa anna toinen nimi");
- }
- }while(sTiedosto.length() < 1 | fTiedosto.exists());
- try
- {
- FileOutputStream fosTiedosto = new FileOutputStream(fTiedosto);
- ObjectOutputStream obsTiedosto = new ObjectOutputStream(fosTiedosto);
- obsTiedosto.writeObject(lista);
- obsTiedosto.flush();
- obsTiedosto.close();
- fosTiedosto.close();
- System.out.println("Lista tallennettu tiedostoon");
- bListaTallessa = true;
- }
- catch(Exception e)
- {
- bListaTallessa = false;
- System.out.println("Ongelma tiedoston käsittelyssä");
- }
- }
- public static void lopeta()
- {
- if (bListaTallessa == false)
- {
- tallennaLista();
- }
- System.out.println("Lopetetaan");
- }
- /**Valikko, joka on vastuussa toimintojen näyttämisestä käyttäjälle
- *@param iValinta saa arvokseen käyttäjän antaman toiminnon numeron
- *@return iValinta mututujan arvo palautetaan */
- public static int valikko()
- {
- int iValinta = 0;
- do
- {
- System.out.println("0. Lopeta");
- System.out.println("1. Lisää kirja");
- System.out.println("2. Poista kirja");
- System.out.println("3. Hae kirjat");
- System.out.println("4. Tulosta kirjat");
- System.out.println("5. Avaa kirjalista tiedostosta");
- System.out.println("6. Tallenna kirjalista tiedoon");
- iValinta = Kysy.kluku();
- }while(iValinta < 0 || iValinta > 6 );
- if(iValinta < 0 || iValinta > 6 )
- {
- System.out.println("Virheellinen valinta. Valitse uudelleen");
- }
- return iValinta;
- }
- }
Add Comment
Please, Sign In to add comment