Checked exceptions: FileNotFoundException, IOException, …

Slides:



Advertisements
Verwante presentaties
Hoofdstuk 14: Exception Handling JAVA -- H14.
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
JAVA1 H 16. MULTITHREADING. 1. INLEIDING. Threads: delen van het programma die in concurrentie met elkaar gelijktijdig in executie gaan. Thread is een.
Van domeinklasse tot implementatie
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
automatische garbage collection klein object georiënteerd betrouwbaar
Het ontwerpen van een klasse
Klasse Stringbuffer Wanneer een String object gecreëerd wordt, kan de inhoud ervan nooit meer veranderen Stringbuffer wordt gebruikt voor zogenaamde.
Het type int Tekenen met Java operatoren
JAVA -- H101 Menu: enkel voor applicaties, niet voor applets soorten: hoofdmenu shortcut popupmenu MENU’S 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Klassen en objecten.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 5: Bestanden.
Hoofdstuk 6: Controle structuren
Hoofdstuk 4: Klassen definiëren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 2 Hallo, C# !.
Server side scripting 1 Webtechnologie Lennart Herlaar.
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
JAVA -- H81 Exception: ongewone of foutieve situatie->prog. mislukt kan onderschept en afgehandeld worden. = een object van de klasse Throwable, gegenereerd.
JAVA -- H111 Socket (of communicatiekanaal): UNIX-term voor de communicatie tussen processen -> uitwisseling van gegevens -> meerdere machines bv. client.
JAVA --- H71 thread= draad in het programma (pad) gewone applets = één thread, volgt één pad multithreading = er worden twee of meer paden gestart, die.
CONTROLESTRUCTUREN (DEEL 2)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Hibernate Object relational mapping
Algoritmiek Object-georiënteerd Programmeren
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
Java DataBase Connectivity
H21. en H22. COLLECTIONS FRAMEWORK. 1. INLEIDING.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Klasse StringBuffer Nadat een String object gecreëerd is, kan de inhoud ervan nooit meer veranderen StringBuffer wordt gebruikt voor zogenaamde.
1 Hoofdstuk 11: Strings en karakters Inleiding In dit hoofdstuk bespreken we de mogelijkheden van de klassen : String StringBuffer Character StringTokenizer.
Hoofdstuk 15: Exception Handling JAVA -- H15.
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
HOOFDSTUK 7 ARRAYS 7.1.     INLEIDING Array
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Hoofdstuk 9 Objecten en klassen.
Hoofdstuk 13.6 File-I/O. Files n40 verschillende klassen in library java.io Exceptions niet meegeteld... nMethodes voor het plegen van Input en Output.
Arrays.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov L.M. Bosveld-de Smet.
Hoofdstuk 17: FILES EN STREAMS.
Inleiding tot programmeren
Datacommunicatie en netwerken
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
GUI & classes Een Gui in een class steken en het object gebruiken.
Objectgeoriënteerd Programmeren (2)
OOS Object geOrienteerd Software-ontwerp - 5
Transcript van de presentatie:

Checked exceptions: FileNotFoundException, IOException, … BESTANDEN Bestanden  streams Toegang: stream access random access Package: java.io Checked exceptions: FileNotFoundException, IOException, … 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BufferedReader (readLine()) InputStreamReader (read()) FileReader BESTANDEN Klassenhiërachie Reader (abstract) BufferedReader (readLine()) InputStreamReader (read()) FileReader Writer (abstract) BufferedWriter PrintWriter (print(), println()) FileWriter 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN -- SCHRIJVEN Aanmaken van een uitvoerbuffer/bestand: FileWriter-object in constructor, naam van het bestand opgeven indien bestand reeds bestaat  overschreven PrintWriter-object constructor met 2 argumenten: FileWriter instantie boolean: true betekent dat na elke println de buffer weggeschreven wordt (=auto-flush) 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD1 JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD1 import java.io.*; import java.awt.*; import java.awt.event.*; class FileDemo extends Frame implements ActionListener { private TextArea invoerTekstGebied; private Button bt_Save; private PrintWriter uitvoerBestand;  public static void main( String[] args) { FileDemo demo = new FileDemo(); demo.setSize(300, 400); demo.makeGui(); demo.setVisible(true); } JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD1  public void makeGui() { bt_Save = new Button("Save"); add("North", bt_Save); bt_Save.addActionListener(this); invoerTekstGebied = new TextArea(10, 50); add("Center", invoerTekstGebied); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD1  public void actionPerformed(ActionEvent e) { if (e.getSource() == bt_Save) { try { uitvoerBestand = new PrintWriter( new FileWriter("Tekstuit.txt"), true); uitvoerBestand.print(invoerTekstGebied.getText()); uitvoerBestand.close(); } catch (IOException ev) { System.err.println("File error: " + ev.toString()); System.exit(1); } } } } JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD2 JAVA -- H9

BESTANDEN – SCHRIJVEN – VOORBEELD2 import java.io.*; public class SchrijfTekst { public static void main(String[] args) {try { PrintWriter uitvoer = new PrintWriter( new FileWriter("Proef.txt"),true); uitvoer.println("Hier volgt enige uitvoer"); int j = 123; uitvoer.print("Twee keer " + j + "is gelijk aan:"); uitvoer.println("" + 2 * j); uitvoer.close(); System.out.println("De file Proef.txt is klaar"); } catch(IOException e) { System.out.println(e); }}} JAVA -- H9

FileReader: doorgeven van externe bestandsnaam BESTANDEN – LEZEN 2 belangrijke klassen: FileReader: doorgeven van externe bestandsnaam BufferedReader: creatie van de inputstream en linken van de logische naam aan de externe naam 1. Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN – LEZEN -- VOORBEELD JAVA -- H9

BESTANDEN – LEZEN --VOORBEELD (1) import java.io.*; import java.awt.*; import java.awt.event.*; class FileDemo extends Frame implements ActionListener { private TextArea invoerTekstGebied; private Button loadButton; private BufferedReader invoerBestand; // = null private TextField naamVeld; public static void main( String[] args) { FileDemo demo = new FileDemo(); demo.setSize(300, 400); demo.makeGui(); demo.setVisible(true); } JAVA -- H9

BESTANDEN – LEZEN --VOORBEELD (2) public void makeGui() { Panel top = new Panel(); loadButton = new Button("Load"); top.add(loadButton); loadButton.addActionListener(this); naamVeld = new TextField(20); top.add(naamVeld); naamVeld.addActionListener(this); add("North",top); invoertekstGebied = new TextArea("",10, 50); add("Center", invoerTekstgebied); addWindowListener(new WindowAdapter() { public void windowClosing (WindowEvent e) { System.exit(0);}}); } JAVA -- H9

BESTANDEN – LEZEN -- VOORBEELD (3) public void actionPerformed (ActionEvent e) { if (e.getSource() == loadButton) { String bestandsNaam; bestandsNaam = naamVeld.getText(); try { invoerBestand = new BufferedReader( new FileReader(bestandsNaam)); invoerTekstGebied.setText(""); String lijn; while (( lijn = invoerBestand.readLine() ) != null) // tot EOF { invoerTekstGebied.append(lijn + "\n");} } JAVA -- H9

BESTANDEN – LEZEN -- VOORBEELD (4) catch (IOException e) {System.err.println("Fout in bestand " + bestandsNaam + " : " + e.toString()); System.exit(1); } finally { try { if (invoerBestand != null) invoerBestand.close(); } catch (IOException e){} JAVA -- H9

public StringTokenizer(String str, String delim) BESTANDEN – ZOEKEN StringTokenizer laat toe om velden (tokens) gescheiden door een ‘delimiter’ uit een String-object te halen Constructoren: public StringTokenizer(String str, String delim, boolean returnTokens) returnTokens is een vlag om aan te geven of de delim al dan niet als token moet beschouwd worden (meestal false) public StringTokenizer(String str, String delim) public StringTokenizer(String str)delim= spatie(s) 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

public int countTokens() public boolean hasMoreElements() BESTANDEN – ZOEKEN 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld Nuttige methoden: public int countTokens() public boolean hasMoreElements() public String nextToken() public Object nextElement() public String nextToken(String delim) JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (1) import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; // StringTokenizer class ZoekBestand extends Frame implements ActionListener { private Button zoekButton; private TextField foutVeld; private BufferedReader invoerBestand; private TextField resultaat1Veld, resultaat2Veld; private TextField bestandsNaamVeld; private TextField persoonVeld; private String bestandsNaam; JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (2) public static void main( String[] args) { ZoekBestand demo = new ZoekBestand(); demo.setSize(350, 400); demo.makeGui(); demo.setVisible(true); } JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (3) public void makeGui() { setLayout( new FlowLayout()); foutVeld = new TextField("Geef de bestandsnaam: "); foutVeld.setEditable(false); add(foutVeld); bestandsNaamVeld = new TextField(20); bestandsNaamVeld.setText(""); add(bestandsNaamVeld); zoekButton = new Button("Zoek"); add(zoekButton); zoekButton.addActionListener(this); add(new Label("Geef naam: ")); persoonVeld = new TextField(20); persoonVeld.setText(""); add(persoonVeld); JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (4) add(new Label("Kwotatie 1 : ")); resultaat1Veld = new TextField(5); resultaat1Veld.setEditable(false); add(resultaat1Veld); add(new Label("Kwotatie 2 : ")); resultaat2Veld = new TextField(5); resultaat2Veld.setEditable(false); add(resultaat2Veld); this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { System.exit(0);} }); } JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (5) public void actionPerformed (ActionEvent evt) { if (evt.getSource() == zoekButton) { bestandsNaam = bestandsNaamVeld.getText(); try { invoerBestand = new BufferedReader( new FileReader(bestandsNaam)); } catch (IOException e) { foutVeld.setText("Bestand niet gevonden "); return; } JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (6) try { String lijn; boolean gevonden = false; while ((( lijn = invoerBestand.readLine() )!= null) && (!gevonden)) { StringTokenizer tokens = new StringTokenizer(lijn, " ,"); String naamInBestand = tokens.nextToken(); if (persoonVeld.getText().equals (naamInBestand)) {gevonden = true; resultaat1Veld.setText(tokens.nextToken()); resultaat2Veld.setText(tokens.nextToken()); } } JAVA -- H9

BESTANDEN – ZOEKEN -- VOORBEELD (7) if (! gevonden) foutVeld.setText(“De naam komt niet voor !”); } catch (IOException e) { System.err.println("Fout bij het lezen in bestand " + bestandsNaam + " : " + e.toString()); System.exit(1); } finally { try { if (invoerBestand != null) invoerBestand.close(); } catch (IOException e){} } // if-statement } // de functie } // de klasse JAVA -- H9

BESTANDEN – I/O via TOETSENBORD Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld Via klasse System 3 streams: System.in System.out System.err JAVA -- H9

geen eenvoudige manier om gegevens in te lezen BESTANDEN – System.in 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld geen eenvoudige manier om gegevens in te lezen advies: werken via BufferedReader-object oplossing: BufferedReader br = new BufferedReader (new InputStreamReader(System.in), 1); Tweede parameter = buffergrootte; als =1, dan is het buffereffect minimaal JAVA -- H9

BESTANDEN – System.out print( String) println(String) flush() Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld print( String) println(String) flush() JAVA -- H9

BESTANDEN – System.out -- VOORBEELD public class LeesRegel {public static void main(String [] args)throws java.io.IOException { System.out.println("Geef een regel in: "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String s = br.readLine(); System.out.println("De volgende regel is gelezen: "); System.out.println(s); s = br.readLine(); // om de uitvoer zichtbaar te maken! } } JAVA -- H9

samen met print of println gebruiken BESTANDEN – System.err 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld samen met print of println gebruiken vb. System.err.println(‘’ Foutief argument! ’’); verlaten van het programma kan rechtstreeks via de klassemethode exit(int) JAVA -- H9

BESTANDEN – File en FileDialog java.io package constructor:let op padnaam (2 * backslash) public String getPath(),getName(),getParent() public String getAbsolutePath() public boolean exists() , canRead(),canWrite() public boolean isDirectory(), isFile() public long length(), public String[] list() 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN – File en FileDialog java.awt package afgeleide klasse van Dialog: public void show() : toont het frame constructoren: public FileDialog(Frame parent) public FileDialog(Frame parent, String title, int mode) public FileDialog(Frame parent, String title) 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN – File en FileDialog public String getFile() public void setFile (String filename) public String getDirectory() public void setDirectory (String directname) public int getMode() public void setMode (int) public FilenameFilter getFilenameFilter() public void setFilenameFilter(FilenameFilter ft) 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9

BESTANDEN – FileDialog -- VOORBEELD (1) import java.io.*; import java.awt.*; import java.awt.event.*; class FileDialogDemo extends Frame implements ActionListener { private FileDialog leesNaamVak; private Button bt_Load; private TextField txt_Naam; JAVA -- H9

BESTANDEN – FileDialog -- VOORBEELD (2)   public static void main( String[] args) { FileDialogDemo demo = new FileDialogDemo(); demo.setSize(500, 400); demo.makeGui(); demo.setVisible(true); } JAVA -- H9

BESTANDEN – FileDialog -- VOORBEELD (3) public void makeGui() { setLayout(new FlowLayout()); bt_Load = new Button("Load"); add(bt_Load); bt_Load.addActionListener(this); txt_Naam = new TextField(30); add(txt_Naam); txt_Naam.addActionListener(this); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } JAVA -- H9

BESTANDEN – FileDialog -- VOORBEELD (4) public void actionPerformed(ActionEvent e) { String bestandsNaam; if (e.getSource() == bt_Load) { leesNaamVak = new FileDialog(this, "Lees naam:", FileDialog.LOAD); leesNaamVak.show(); bestandsNaam = leesNaamVak.getFile(); txt_Naam.setText(bestandsNaam); }   JAVA -- H9

DATABASE-ACCESS met SQL De 4 basisstappen voor JDBC-programmatie zijn: registreren van een databasedriver via de methode Class.forName() connecteren met de database door de methode Connection conn = DriverManager.getConnection(String url, String user, String paswoord) aan te roepen creatie van een Statement-object, waarmee we SQL-statements naar de databank kunnen zenden query uitvoeren met executeQuery() of een update doen met executeUpdate() of werken met de algemene methode execute() 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld JAVA -- H9