De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

JAVA -- H91 Bestanden  streams Toegang: stream access random access Package: java.io Checked exceptions: FileNotFoundException, IOException, … BESTANDEN.

Verwante presentaties


Presentatie over: "JAVA -- H91 Bestanden  streams Toegang: stream access random access Package: java.io Checked exceptions: FileNotFoundException, IOException, … BESTANDEN."— Transcript van de presentatie:

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

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

3 JAVA -- H93 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

4 JAVA -- H94 BESTANDEN – SCHRIJVEN – VOORBEELD1

5 JAVA -- H95 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); }

6 JAVA -- H96 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); } } ); }

7 JAVA -- H97 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); } } } }

8 JAVA -- H98 BESTANDEN – SCHRIJVEN – VOORBEELD2

9 JAVA -- H99 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); }}}

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

11 JAVA -- H911 BESTANDEN – LEZEN -- VOORBEELD

12 JAVA -- H912 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); }

13 JAVA -- H913 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);}}); }

14 JAVA -- H914 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");} }

15 JAVA -- H915 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){} }

16 JAVA -- H916 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

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

18 JAVA -- H918 BESTANDEN – ZOEKEN -- VOORBEELD

19 JAVA -- H919 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;

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

21 JAVA -- H921 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);

22 JAVA -- H922 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);} }); }

23 JAVA -- H923 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; }

24 JAVA -- H924 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()); } }

25 JAVA -- H925 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

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

27 JAVA -- H927 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

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

29 JAVA -- H929 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! } }

30 JAVA -- H930 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)

31 JAVA -- H931 BESTANDEN – File en FileDialog 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld File  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()

32 JAVA -- H932 BESTANDEN – File en FileDialog 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld 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)

33 JAVA -- H933 BESTANDEN – File en FileDialog 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld 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)

34 JAVA -- H934 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;

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

36 JAVA -- H936 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); }}); }

37 JAVA -- H937 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); } }

38 JAVA -- H938 DATABASE-ACCESS met SQL 1.Bestanden Schrijven Lezen Zoeken in… Toetsenbord File/-Dialog 2. DB-toegang Stappen Voorbeeld 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()


Download ppt "JAVA -- H91 Bestanden  streams Toegang: stream access random access Package: java.io Checked exceptions: FileNotFoundException, IOException, … BESTANDEN."

Verwante presentaties


Ads door Google