Laboratorul 5 [PDF]

  • Author / Uploaded
  • ion
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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 import import import import import

java.awt.BorderLayout; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.io.File; java.io.FileNotFoundException; java.io.IOException;

import import import import import

javax.swing.JButton; javax.swing.JFileChooser; javax.swing.JFrame; javax.swing.JTextArea; 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 import import import import import import import import

java.io.BufferedReader; java.io.File; java.io.FileInputStream; java.io.FileOutputStream; java.io.IOException; java.io.InputStreamReader; java.io.PrintStream; java.io.PrintWriter; 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 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 import import import import

java.awt.event.ActionEvent; java.awt.event.ActionListener; java.io.File; java.io.FileNotFoundException; 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() {

.