1 / 45

Chapter 10

Chapter 10. Ch 1 – Introduction to Computers and Java. Streams and File IO. Chapter 10. 10.1 File IO Overview 10.2 Text-File IO 10.3 File Techniques 10.6 Graphics Supplement. 10.1 File IO Overview. A stream is a stream is a stream. All IO can be viewed as a stream of data.

osman
Download Presentation

Chapter 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10 Ch 1 – Introduction toComputers and Java Streams and File IO

  2. Chapter 10 10.1 File IO Overview 10.2 Text-File IO 10.3 File Techniques 10.6 Graphics Supplement

  3. 10.1File IO Overview

  4. A stream is a stream is a stream All IO can be viewed as a stream of data

  5. An Input stream delivers data toyour program Streaming data

  6. An Output stream accepts data from your program Streaming data

  7. A file could be treated astext or binary All data is binary at the end of the day

  8. A text file treats the binary data as characters Each digit uses 1 (ASCII) or 2 (Unicode) bytes

  9. A binary file manipulates the binary data Each data item uses the same number of bytes (4 for ints)

  10. Recap • A program reads data from an input stream • A program writes data to an output stream • A text file interprets its binary data as text • A binary file deals with the binary data itself

  11. 10.2Text-File IO

  12. There are four steps in using file IO 1 2 3 4 Open the file stream Test the Connection Perform the IO Close the stream

  13. (1) Open the file stream // Reading Scanner fin = null; try { • fin = new Scanner(new File(filename)); } // Writing PrintWriter fout = null; try { // Create empty file • fout = new PrintWriter(filename); • // or • fout = new PrintWriter(new FileOutputStream(filename, false)); • // Append to the file • fapp = new PrintWriter(new FileOutputStream(filename, true)); }

  14. (2) Test the Connection catch (FileNotFoundException e) { System.err.println("Error opening file " + filename); System.exit(1); }

  15. (3) Perform the IO // Reading while (fin.hasNextLine()) { String line = fin.nextLine(); // process the line ... } // Writing fout.println("Write some output"); ...

  16. (4) Close the Stream // Reading fin.close(); // Writing fout.close();

  17. Application Deconstructed<FileOutput.java> package fileoutput; import java.io.PrintWriter; import java.io.FileNotFoundException; public class FileOutput { public static void main(String[] args) { PrintWriter fout = null; String filename = "fileOutput.txt"; // Open and test the output stream. try { fout = new PrintWriter(filename); } catch (FileNotFoundException e) { System.err.println("Error opening the file " + filename); System.exit(1); }// end try

  18. Application Deconstructed<FileOutput.java> // Perform some IO. for (int line = 1; line <= 5; line++) { fout.println(line + ": " + "This is just a line"); } // Close the stream. fout.close(); System.out.println("File " + filename + " was created successfully."); }// end main() } // end FileOutput

  19. Application Deconstructed<FileOutput.java>

  20. Application Deconstructed<FileInput.java> package fileinput; import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class FileInput { public static void main(String[] args) { String filename = "fileOutput.txt"; Scanner fin = null; // Open and test the stream. try { fin = new Scanner(new File(filename)); } catch (FileNotFoundException e) { System.err.println(e); System.exit(1); }// end try

  21. Application Deconstructed<FileInput.java> // Perform the IO. while (fin.hasNext()) { int lineNumber = Integer.parseInt( fin.next().replace(":", "")); String lineText = fin.nextLine(); System.out.println(lineText + lineNumber); }// end while // Close the stream. fin.close(); }// end main() }// end FileInput

  22. Recap • Open the file stream first in a try block • Catch any errors that occur during opening • Perform the IO • Close the stream as soon as IO is finished

  23. 10.3File Techniques

  24. The File class offers useful functionality public boolean canRead() // Can program read from the file? public boolean canWrite() // Can program write to the file? public boolean delete() // Was file detected? public boolean exists() // Does the file exist? String getName() // Get file's name. String getPath() // Get file's path. public long length() // Get file's path.

  25. Application Deconstructed<FileClass.java> package fileclass; import java.io.File; import java.util.Scanner; public class FileClass { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); File file = null; // Ask the user for the file. System.out.print("Enter the filename: "); file = new File(keyboard.nextLine());

  26. Application Deconstructed<FileClass.java> // Let's test some File methods. System.out.println(""); System.out.println("Does file exist? " + String.valueOf(file.exists())); ... }// end main() }// end FileClass

  27. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("Can file be read? " + String.valueOf(file.canRead())); ... }// end main() }// end FileClass

  28. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("Can file be written? " + String.valueOf(file.canWrite())); ... }// end main() }// end FileClass

  29. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("Filename: " + file.getName()); ... }// end main() }// end FileClass

  30. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("File path: " + file.getPath()); ... }// end main() }// end FileClass

  31. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("File absolute path: " + file.getAbsolutePath()); ... }// end main() }// end FileClass

  32. Application Deconstructed<FileClass.java> // Let's test some File methods. ... System.out.println("File length: " + file.length() + " bytes"); }// end main() }// end FileClass

  33. Application Deconstructed<FileClass.java> // Let's test some File methods. System.out.println(""); System.out.println("Does file exist? " + String.valueOf(file.exists())); System.out.println("Can file be read? " + String.valueOf(file.canRead())); System.out.println("Can file be written? " + String.valueOf(file.canWrite())); System.out.println("Filename: " + file.getName()); System.out.println("File path: " + file.getPath()); System.out.println("File absolute path: " + file.getAbsolutePath()); System.out.println("File length: " + file.length() + " bytes"); }// end main() }// end FileClass

  34. Application Deconstructed<FileClass.java>

  35. Application Deconstructed<CSVFile.java> package csvfile; import java.io.PrintWriter; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class CSVFile { public static void main(String[] args) { Scanner fin = null; PrintWriter fout = null; String filename = "csv.txt";

  36. Application Deconstructed<CSVFile.java> try { fin = new Scanner(new File(filename)); fout = new PrintWriter("csvout.txt"); } catch (FileNotFoundException e) { System.err.println(e); System.exit(1); }// end try

  37. Application Deconstructed<CSVFile.java> String line = null; int pos; // Read from the input file and write to output file. while (fin.hasNextLine()) { line = fin.nextLine(); // Write the record number. pos = line.indexOf(","); fout.print(line.substring(0, pos) + ":"); line = line.substring(pos + 1); // Write the first name. pos = line.indexOf(","); fout.print(line.subSequence(0, pos) + ":"); line = line.substring(pos + 1); // Write the last name. fout.println(line); }// end while

  38. Application Deconstructed<CSVFile.java> fin.close(); fout.close(); System.out.println(filename + " was read and " + "csvout.txt was written."); }// end main() }// end CSVFile

  39. Application Deconstructed<CSVFile.java>

  40. Recap • Use a File object for useful file information • A csv file requires special handling (for now anyway)

  41. 10.6Graphics Supplement

  42. Application Deconstructed<FileFrame.java> package fileframe; import javax.swing.JFrame; import javax.swing.JTextArea; import java.awt.Container; import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class FileFrame extends JFrame { JTextArea contentsTextArea; public static void main(String[] args) { FileFrame frame = new FileFrame(); frame.setSize(600, 500); frame.setTitle("File Viewer :: fileOutput.txt"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }// end main()

  43. Application Deconstructed<FileFrame.java> // Constructor. public FileFrame() { initComponents(); }// end FileFrame() private void initComponents() { // Create the TextArea. contentsTextArea = new JTextArea(); Container contentPane = getContentPane(); // Add the control to the content pane. contentsTextArea.setSize(590, 470); contentPane.add(contentsTextArea); // Load the text file contents into the TextArea. LoadTextAreaWithFile("fileOutput.txt"); }// end initComponents()

  44. Application Deconstructed<FileFrame.java> private void LoadTextAreaWithFile(String filename) { Scanner fin = null; try { fin = new Scanner(new File(filename)); } catch (FileNotFoundException e) { System.err.println(e); System.exit(1); }// end try while (fin.hasNextLine()) { contentsTextArea.append(fin.nextLine() + "\n"); }// end while fin.close(); }// end LoadTextAreaWithFile() }// end FileFrame

  45. Application Deconstructed<FileFrame.java>

More Related