POO Lab Lucrarea 3: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
Linia 13: Linia 13:
== Cerințe ==
== Cerințe ==


* În metoda '''main''' din clasa '''TestClass''' instanțiați un obiect de tip [http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html java.io.FileOutputStream] în care să scrieți, pe fiecare rând, conținutul câmpurilor obiectelor de tip '''Message''' și '''SystemMessage''' instanțiate în prealabil, câmpurile fiind separate de șirul de caractere "<->". Numele fișierului în care se scriu datele este primit ca argument la execuția programului. '''Observație:''' Pentru realizarea acestui exercițiu, se permite adăugarea unei metode suplimentare în clasa '''Message''';
* În metoda '''main''' din clasa '''TestClass''' instanțiați un obiect de tip [http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html java.io.FileOutputStream] în care să scrieți, pe fiecare rând, conținutul câmpurilor obiectelor de tip '''Message''' și '''SystemMessage''' instanțiate în prealabil, câmpurile fiind separate de șirul de caractere "<->". Numele fișierului în care se scriu datele este primit ca argument la execuția programului. '''Observație:''' Pentru realizarea acestui exercițiu, se permite adăugarea câte unei metode suplimentare în clasele '''Message''' si '''SystemMessage''';
* Scrieți o clasă '''StreamTester''' care să conțină exclusiv metoda '''main'''. Metoda '''main''' ia ca argument, la execuția programului, un șir de caractere reprezentând un nume de fișier (cel generat de programul anterior). Folosind clasele [http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html java.io.BufferedReader], [http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html java.io.InputStreamReader] și [http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html java.io.FileInputStream], citiți linie cu linie conținutul fișierului și instanțiați obiecte potrivite ('''Message''' sau '''SystemMessage''') pe care să le afișați în consolă folosindu-vă de metoda '''toString()'''. '''Observație:''' Folosiți-vă de metoda '''split''' din clasa [http://docs.oracle.com/javase/7/docs/api/java/lang/String.html java.lang.String];
* Scrieți o clasă '''StreamTester''' care să conțină exclusiv metoda '''main'''. Metoda '''main''' ia ca argument, la execuția programului, un șir de caractere reprezentând un nume de fișier (cel generat de programul anterior). Folosind clasele [http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html java.io.BufferedReader], [http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html java.io.InputStreamReader] și [http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html java.io.FileInputStream], citiți linie cu linie conținutul fișierului și instanțiați obiecte potrivite ('''Message''' sau '''SystemMessage''') pe care să le afișați în consolă folosindu-vă de metoda '''toString()'''. '''Observație:''' Folosiți-vă de metoda '''split''' din clasa [http://docs.oracle.com/javase/7/docs/api/java/lang/String.html java.lang.String];
* Tratând excepțiile aruncate de diversele metodele folosite, dacă fișierul primit ca argument la punctul anterior nu există, se va afișa în consolă mesajul "File not found". Dacă acesta nu se poate scrie sau citi, se va afișa "IO operation failed". Analog, daca una din liniile citite nu corespunde formatului așteptat, se va afișa mesajul "Line <conținutul liniei> does not match the expected template" și se va trece la linia următoare din fișier.
* Tratând excepțiile aruncate de diversele metodele folosite, dacă fișierul primit ca argument la punctul anterior nu există, se va afișa în consolă mesajul "File not found". Dacă acesta nu se poate scrie sau citi, se va afișa "IO operation failed". Analog, daca una din liniile citite nu corespunde formatului așteptat, se va afișa mesajul "Line <conținutul liniei> does not match the expected template" și se va trece la linia următoare din fișier.

Versiunea de la data 30 octombrie 2012 09:44

Noțiuni și cunoștințe necesare

Cerințe

  • În metoda main din clasa TestClass instanțiați un obiect de tip java.io.FileOutputStream în care să scrieți, pe fiecare rând, conținutul câmpurilor obiectelor de tip Message și SystemMessage instanțiate în prealabil, câmpurile fiind separate de șirul de caractere "<->". Numele fișierului în care se scriu datele este primit ca argument la execuția programului. Observație: Pentru realizarea acestui exercițiu, se permite adăugarea câte unei metode suplimentare în clasele Message si SystemMessage;
  • Scrieți o clasă StreamTester care să conțină exclusiv metoda main. Metoda main ia ca argument, la execuția programului, un șir de caractere reprezentând un nume de fișier (cel generat de programul anterior). Folosind clasele java.io.BufferedReader, java.io.InputStreamReader și java.io.FileInputStream, citiți linie cu linie conținutul fișierului și instanțiați obiecte potrivite (Message sau SystemMessage) pe care să le afișați în consolă folosindu-vă de metoda toString(). Observație: Folosiți-vă de metoda split din clasa java.lang.String;
  • Tratând excepțiile aruncate de diversele metodele folosite, dacă fișierul primit ca argument la punctul anterior nu există, se va afișa în consolă mesajul "File not found". Dacă acesta nu se poate scrie sau citi, se va afișa "IO operation failed". Analog, daca una din liniile citite nu corespunde formatului așteptat, se va afișa mesajul "Line <conținutul liniei> does not match the expected template" și se va trece la linia următoare din fișier.