Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE205 Lecture 23

CSE205 Lecture 23

Object-Oriented Programming and Data Structures
Streams and Exceptions
(202111)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez
PRO

October 03, 2021
Tweet

Transcript

  1. jgs CSE 205 Object-Oriented Programming and Data Structures Lecture 23:

    Streams and Exceptions Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 2 jgs

    Announcement § Homework 05 is due November 25.
  3. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 3 jgs

    Where we are … Data Structures Files
  4. jgs Streams

  5. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 5 jgs

    I/O Streams § An I/O Stream represents an input source or an output destination
  6. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 6 jgs

    Hierarchy
  7. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 7 jgs

    File Stream (binary data) import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyBytes { public static void main(String[] args) { try { FileInputStream in = new FileInputStream(”myfile.txt"); FileOutputStream out =new FileOutputStream("outagain.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } in.close(); out.close(); } catch (IOException e) { System.out.println(“Failure!”); } } }
  8. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 8 jgs

    File Stream (char data) import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyCharacters { public static void main(String[] args) { try { FileReader inputStream = new FileReader(”myFile.txt"); FileWriter outputStream = new FileWriter(”output.txt"); int c; while ((c = inputStream.read()) != -1) { outputStream.write(c); } inputStream.close(); outputStream.close(); } catch (IOException e) { System.out.println(“Failure!”); } } }
  9. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 9 jgs

    File Stream (string data) import java.io.FileReader; import java.io.FileWriter; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.IOException; public class CopyLines { public static void main(String[] args) { try { FileReader input = new FileReader(”myFile.txt"); FileWriter output = new FileWriter(”output.txt"); BufferedReader inputStream = new BufferedReader(input); PrintWriter outputStream = new PrintWriter(output); String l; while ((l = inputStream.readLine()) != null) { outputStream.println(l); } inputStream.close(); outputStream.close(); } catch (IOException e) { System.out.println(“Failure!”); } } }
  10. jgs try-catch

  11. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 11 jgs

    Exceptions § When executing Java code, different errors can occur due to wrong input, or other unforeseeable things. § When an error occurs, Java will normally stop and generate an error message. The technical term for this is: Java will throw an exception (an error). § The try statement allows you to define a block of code to be tested for errors while it is being executed. § The catch statement allows you to define a block of code to be executed, if an error occurs in the try block. § The try and catch keywords come in pairs.
  12. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 12 jgs

    try-catch Statements try { // Block of code to try } catch(Exception e) { // Block of code to handle errors }
  13. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 13 jgs

    Example
  14. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 14 jgs

    Exceptions There are many exception types available in Java: § ArithmeticException, § FileNotFoundException, § ArrayIndexOutOfBoundsException, § SecurityException, § etc. § The parent of all is the class Exception
  15. jgs

  16. jgs Exceptions

  17. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 17 jgs

    Example
  18. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 18 jgs

    finally Statement § The finally statement lets you execute code, after try...catch, regardless of the result
  19. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 19 jgs

    Example
  20. jgs throw

  21. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 21 jgs

    Definition § The throw statement allows you to create a custom error
  22. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 22 jgs

    Example
  23. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 23 jgs

    Example
  24. Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 24 jgs

    Questions
  25. jgs CSE 205 Object-Oriented Programming and Data Structures Javier Gonzalez-Sanchez,

    Ph.D. javiergs@asu.edu Fall 2021 Copyright. These slides can only be used as study material for the class CSE205 at Arizona State University. They cannot be distributed or used for another purpose.