Sunteți pe pagina 1din 7

4 Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică şi Microelectronică

Departamentul Ingineria Software şi Automatică

Raport
Lucrarea de laborator nr.5
Disciplina: Tehnici avansate de programare

A efectuat: st. gr. CR-181


Patras Cristi

A verificat Petic Mircea

Chișinău - 2020
1. Tema lucrării:
Tratarea excepţiilor
2. Scopul lucrării:
Însuşirea modalităţilor de creare şi realizarea exceptiilor in
Java
Sarcina:
1.Sa se citeasca cite un rind dintr-un fişier şi să se
înscrie in stivă. Apoi rîndurile din stivă de înscris în
fişier în ordine inversă.
CODUL:
Clasa Lab5.java:
public class Lab5
{

public static void main(String[] args)


{
Window w = new Window();
}
}

Clasa Window:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileSystemView;

public class Window


{
FileHandler fileHandler = new FileHandler();
Window()
{
createWindow();
fileHandler.selectFile();
}

private void createWindow()


{
JFrame f = new JFrame("Lab 5");
f.setSize(350, 250);
f.setLocation(300,200);
final JTextArea textArea = new JTextArea(10, 40);
f.getContentPane().add(BorderLayout.CENTER, textArea);
final JButton button = new JButton("Convert");
f.getContentPane().add(BorderLayout.SOUTH, button);
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

textArea.append(revertLinesActionHandler() + "\n");
}
});

f.setVisible(true);
}

public String revertLinesActionHandler()


{
try {
fileHandler.revertLines();
}
catch (FileNotFoundException e)
{
return "File-ul nu a fost gasit!";
}
catch (IOException e)
{
return "Imposibil ce citit file-ul";
}
catch (IllegalStateException e)
{
return "File-ul este pustiu!";
}
return "Randurile au fost inversate!";
}
}

Clasa FileHandler:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Stack;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileSystemView;

public class FileHandler


{
String path = "";

void selectFile()
{
JFileChooser jfc = new
JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
int returnValue = jfc.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION)
{
File selectedFile = jfc.getSelectedFile();
path = selectedFile.getAbsolutePath();
}
}

void revertLines() throws IOException


{
FileInputStream fstream = new FileInputStream(path);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
Stack<String> lines = new Stack<>();

String strLine;
int count = 0;
while ((strLine = br.readLine()) != null) {
lines.add(strLine);
count += 1;
}
fstream.close();

if (lines.isEmpty())
{
throw new IllegalStateException();
}

PrintStream out = new PrintStream(new FileOutputStream(path));


for (int i = 0; i < count; i++) {
out.print(lines.pop() + "\n");
}
out.close();
}
}

Rezultatele obtinute:
Odata cu pornirea programului se porneste si un file
selector. Alegem file-ul de tip .txt si apasam “Convert”.
In cazul in care nu a fost nicio exceptie, va aparea mesajul respective
In caz ca file-ul nu poate fi citit, este de tip ‘readonly’ sau nu exista, aceasta exceptie va fi prelucrata si va
aparea mesaj.

Concluzie
In aceasta lucrare de laborator am studiat insuşirea
modalităţilor de creare şi realizare a exceptiilor in Java. Am
prelucrat cateva erori standarte, care ar putea aparea la
citirea unui file, dar am si creat una proprie. Deasemenea
am creat un User Interface pentru a selecta file-uri si a afisa
resultatul rularii programului. Pentru aceasta am folosit
bibliotecile standate din Java (Swing).
Am folosit diverse biblioteci pentru a descrie mai concis
exceptiile in java de exemplu import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;

. Am importat diverse elemente din JFX pentru tratarea


exceptiilor. Am folosit constructori ca de exemplu {
JFrame f = new JFrame("Lab 5");
f.setSize(350, 250);
f.setLocation(300,200);
final JTextArea textArea = new JTextArea(10, 40);
f.getContentPane().add(BorderLayout.CENTER, textArea);
final JButton button = new JButton("Convert");
f.getContentPane().add(BorderLayout.SOUTH, button);
button.addActionListener(new ActionListener() {

S-ar putea să vă placă și

  • Lab 1 BD
    Lab 1 BD
    Document7 pagini
    Lab 1 BD
    Augusta Bucataru
    Încă nu există evaluări
  • Lucrare de Laborator NR.1 LFC
    Lucrare de Laborator NR.1 LFC
    Document10 pagini
    Lucrare de Laborator NR.1 LFC
    John Smith
    Încă nu există evaluări
  • LL2 Baze de Date
    LL2 Baze de Date
    Document15 pagini
    LL2 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Lab 1 Docx
    Lab 1 Docx
    Document6 pagini
    Lab 1 Docx
    AlexandruBotnaru
    Încă nu există evaluări
  • Raport 6
    Raport 6
    Document3 pagini
    Raport 6
    Dekionlolz В
    Încă nu există evaluări
  • Lucrare de Laborator nr.4 Florea Cristina
    Lucrare de Laborator nr.4 Florea Cristina
    Document9 pagini
    Lucrare de Laborator nr.4 Florea Cristina
    Cristina Florea
    Încă nu există evaluări
  • LL1 Baze de Date
    LL1 Baze de Date
    Document10 pagini
    LL1 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Iepuras Daniel LAB 3 TS
    Iepuras Daniel LAB 3 TS
    Document8 pagini
    Iepuras Daniel LAB 3 TS
    DanuIepuras
    Încă nu există evaluări
  • Somipp Linux 3 UTM
    Somipp Linux 3 UTM
    Document7 pagini
    Somipp Linux 3 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • Amoo 4
    Amoo 4
    Document5 pagini
    Amoo 4
    AlionaCrigan
    Încă nu există evaluări
  • Capitolul II Limbajul UML
    Capitolul II Limbajul UML
    Document34 pagini
    Capitolul II Limbajul UML
    torjocf
    Încă nu există evaluări
  • Proiect de Curs BDC
    Proiect de Curs BDC
    Document27 pagini
    Proiect de Curs BDC
    Ion Boika
    Încă nu există evaluări
  • Lab1 Somipp
    Lab1 Somipp
    Document14 pagini
    Lab1 Somipp
    Jen4ik
    100% (1)
  • Lucrarea de Laborator 1
    Lucrarea de Laborator 1
    Document14 pagini
    Lucrarea de Laborator 1
    Anonymous B5GmZv5B
    Încă nu există evaluări
  • Lab 1 PMMA
    Lab 1 PMMA
    Document3 pagini
    Lab 1 PMMA
    BatiriMichael
    Încă nu există evaluări
  • Lab3 AMOO
    Lab3 AMOO
    Document7 pagini
    Lab3 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Raspunsuri AC
    Raspunsuri AC
    Document10 pagini
    Raspunsuri AC
    Anastasia
    Încă nu există evaluări
  • Raspunsuri AMSI
    Raspunsuri AMSI
    Document11 pagini
    Raspunsuri AMSI
    Cristina Florea
    Încă nu există evaluări
  • AMSI Lab2
    AMSI Lab2
    Document6 pagini
    AMSI Lab2
    Dumitru Plamadeala
    Încă nu există evaluări
  • AMOO3 Morcotilo Nichita FINAL
    AMOO3 Morcotilo Nichita FINAL
    Document11 pagini
    AMOO3 Morcotilo Nichita FINAL
    Никита Мк.
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document10 pagini
    Lab 3
    Ion Cornea
    Încă nu există evaluări
  • Lab 1ipp
    Lab 1ipp
    Document20 pagini
    Lab 1ipp
    SlavicCaldare
    Încă nu există evaluări
  • Somipplaba5 (Ru)
    Somipplaba5 (Ru)
    Document99 pagini
    Somipplaba5 (Ru)
    Maria Sevciuc
    0% (1)
  • LL7 Baze de Date
    LL7 Baze de Date
    Document5 pagini
    LL7 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • SOMIPP Labs
    SOMIPP Labs
    Document107 pagini
    SOMIPP Labs
    Ionel Boaghe
    Încă nu există evaluări
  • Operatori Access
    Operatori Access
    Document9 pagini
    Operatori Access
    oboghiu
    Încă nu există evaluări
  • Grafica Pe Calculator Lab 1 Java
    Grafica Pe Calculator Lab 1 Java
    Document4 pagini
    Grafica Pe Calculator Lab 1 Java
    Calc 182
    Încă nu există evaluări
  • Raport: Lucrarea de Laborator 6 Tehnologii Web
    Raport: Lucrarea de Laborator 6 Tehnologii Web
    Document4 pagini
    Raport: Lucrarea de Laborator 6 Tehnologii Web
    Fil Gorea
    Încă nu există evaluări
  • Lab3 PR
    Lab3 PR
    Document22 pagini
    Lab3 PR
    Constantin
    Încă nu există evaluări
  • Amoo 6
    Amoo 6
    Document6 pagini
    Amoo 6
    Mihai Ciubotaru
    Încă nu există evaluări
  • Laborator 1 Cucu Eugeniu
    Laborator 1 Cucu Eugeniu
    Document5 pagini
    Laborator 1 Cucu Eugeniu
    Cucu Eugen
    Încă nu există evaluări
  • Lab 4 RC
    Lab 4 RC
    Document4 pagini
    Lab 4 RC
    Den's Vlogs
    Încă nu există evaluări
  • Alahbabah
    Alahbabah
    Document21 pagini
    Alahbabah
    Andrei Terzi
    Încă nu există evaluări
  • Despre UML
    Despre UML
    Document51 pagini
    Despre UML
    Danu Botnari
    Încă nu există evaluări
  • Amo 5
    Amo 5
    Document8 pagini
    Amo 5
    Fil Gorea
    Încă nu există evaluări
  • Lab 1 GC
    Lab 1 GC
    Document4 pagini
    Lab 1 GC
    Ion Popescu
    Încă nu există evaluări
  • SQL Lab1
    SQL Lab1
    Document27 pagini
    SQL Lab1
    Ion Şuiu
    Încă nu există evaluări
  • PAM
    PAM
    Document3 pagini
    PAM
    nicu zuza
    Încă nu există evaluări
  • RC Examen
    RC Examen
    Document50 pagini
    RC Examen
    Belinschi Andrei
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document9 pagini
    Lab 1
    Fil Gorea
    Încă nu există evaluări
  • A1
    A1
    Document11 pagini
    A1
    Amarfii Sergiu
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • Analiza Datelor Multidimensionale
    Analiza Datelor Multidimensionale
    Document21 pagini
    Analiza Datelor Multidimensionale
    Nita Ionela
    Încă nu există evaluări
  • PSI Laborator 1RO
    PSI Laborator 1RO
    Document17 pagini
    PSI Laborator 1RO
    Victor Noroc
    Încă nu există evaluări
  • Raport Final
    Raport Final
    Document26 pagini
    Raport Final
    Cristi Adașan
    Încă nu există evaluări
  • LucrariLab SI - Sarcini
    LucrariLab SI - Sarcini
    Document2 pagini
    LucrariLab SI - Sarcini
    Tudor Stratan
    Încă nu există evaluări
  • LL3 (Amoo)
    LL3 (Amoo)
    Document6 pagini
    LL3 (Amoo)
    Eric Semeniuc
    Încă nu există evaluări
  • TW Lab 6
    TW Lab 6
    Document6 pagini
    TW Lab 6
    DanuIepuras
    Încă nu există evaluări
  • Laborator Porgramarea Calculatoarelor 3
    Laborator Porgramarea Calculatoarelor 3
    Document3 pagini
    Laborator Porgramarea Calculatoarelor 3
    Sergiu Lungu
    Încă nu există evaluări
  • Teste POO Raspunsuri
    Teste POO Raspunsuri
    Document24 pagini
    Teste POO Raspunsuri
    Alex Kara
    Încă nu există evaluări
  • Lab5 Rezolvare
    Lab5 Rezolvare
    Document3 pagini
    Lab5 Rezolvare
    Cosmin
    Încă nu există evaluări
  • Sda Laborator
    Sda Laborator
    Document26 pagini
    Sda Laborator
    Dorin Graur
    Încă nu există evaluări
  • Lab7 AMOO
    Lab7 AMOO
    Document7 pagini
    Lab7 AMOO
    Ion Cornea
    Încă nu există evaluări
  • Laborator Nr.1 Reteau Calculatorului
    Laborator Nr.1 Reteau Calculatorului
    Document7 pagini
    Laborator Nr.1 Reteau Calculatorului
    Андрей Пырлог
    Încă nu există evaluări
  • Serializarea
    Serializarea
    Document6 pagini
    Serializarea
    Gabi Sorin Sima
    Încă nu există evaluări
  • Serializare C#
    Serializare C#
    Document23 pagini
    Serializare C#
    Simona Diana
    Încă nu există evaluări
  • Serializarea
    Serializarea
    Document4 pagini
    Serializarea
    winchester lung
    Încă nu există evaluări
  • Laborator 9
    Laborator 9
    Document12 pagini
    Laborator 9
    user.giu
    Încă nu există evaluări
  • Cine Sunt Eu
    Cine Sunt Eu
    Document1 pagină
    Cine Sunt Eu
    ion
    Încă nu există evaluări
  • Rachetelee
    Rachetelee
    Document1 pagină
    Rachetelee
    ion
    Încă nu există evaluări
  • Lucrare Laborator 5
    Lucrare Laborator 5
    Document5 pagini
    Lucrare Laborator 5
    ion
    Încă nu există evaluări
  • Calculatoarele Si Noi
    Calculatoarele Si Noi
    Document1 pagină
    Calculatoarele Si Noi
    ion
    Încă nu există evaluări
  • Iubire CA Vara
    Iubire CA Vara
    Document1 pagină
    Iubire CA Vara
    ion
    Încă nu există evaluări
  • Lucrare Laborator 1 Si 2
    Lucrare Laborator 1 Si 2
    Document7 pagini
    Lucrare Laborator 1 Si 2
    ion
    Încă nu există evaluări
  • Lucrare Laborator 4
    Lucrare Laborator 4
    Document8 pagini
    Lucrare Laborator 4
    ion
    Încă nu există evaluări
  • CR-191FR-Balan Ion - Lab-AC-1
    CR-191FR-Balan Ion - Lab-AC-1
    Document5 pagini
    CR-191FR-Balan Ion - Lab-AC-1
    ion
    Încă nu există evaluări
  • Indrumar CIAC
    Indrumar CIAC
    Document88 pagini
    Indrumar CIAC
    ion
    Încă nu există evaluări
  • RC Concepte NotiuniDeBaza
    RC Concepte NotiuniDeBaza
    Document53 pagini
    RC Concepte NotiuniDeBaza
    ion
    Încă nu există evaluări
  • RC Retele Locale
    RC Retele Locale
    Document54 pagini
    RC Retele Locale
    ion
    Încă nu există evaluări
  • Lab BTD 1
    Lab BTD 1
    Document7 pagini
    Lab BTD 1
    ion
    Încă nu există evaluări
  • RC - Linii de Comunicare
    RC - Linii de Comunicare
    Document22 pagini
    RC - Linii de Comunicare
    ion
    Încă nu există evaluări
  • Lab BTD
    Lab BTD
    Document7 pagini
    Lab BTD
    ion
    Încă nu există evaluări