Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 10 Ch 1 – Introduction to Computers and Java Streams and File IO 1."— Presentation transcript:

1 Chapter 10 Ch 1 – Introduction to Computers and Java Streams and File IO 1

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

3 10.1 File IO Overview 3

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

5 An Input stream delivers data to your program Streaming data 5

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

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

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

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

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 10

11 10.2 Text-File IO 11

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

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

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

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

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

17 Application Deconstructed 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 17

18 Application Deconstructed // 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 18

19 Application Deconstructed 19

20 Application Deconstructed 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 20

21 Application Deconstructed // 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 21

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 22

23 10.3 File Techniques 23

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. 24

25 Application Deconstructed 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()); 25

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

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

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

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

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

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

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

33 Application Deconstructed // 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 33

34 Application Deconstructed 34

35 Application Deconstructed 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"; 35

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

37 Application Deconstructed 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 37

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

39 Application Deconstructed 39

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

41 10.6 Graphics Supplement 41

42 Application Deconstructed 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() 42

43 Application Deconstructed // 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() 43

44 Application Deconstructed 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 44

45 Application Deconstructed 45


Download ppt "Chapter 10 Ch 1 – Introduction to Computers and Java Streams and File IO 1."

Similar presentations


Ads by Google