De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Checked exceptions: FileNotFoundException, IOException, …

Verwante presentaties


Presentatie over: "Checked exceptions: FileNotFoundException, IOException, …"— Transcript van de presentatie:

1 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

2 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

3 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

4 BESTANDEN – SCHRIJVEN – VOORBEELD1
JAVA -- H9

5 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

6 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

7 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

8 BESTANDEN – SCHRIJVEN – VOORBEELD2
JAVA -- H9

9 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

10 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

11 BESTANDEN – LEZEN -- VOORBEELD
JAVA -- H9

12 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

13 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

14 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

15 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

16 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

17 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

18 BESTANDEN – ZOEKEN -- VOORBEELD
JAVA -- H9

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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


Download ppt "Checked exceptions: FileNotFoundException, IOException, …"

Verwante presentaties


Ads door Google