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