Top Banner
Java Chapter 9 File Input and Output
30

Java

Feb 02, 2016

Download

Documents

kamuzu

Java. Chapter 9 File Input and Output. Objectives. In this chapter you will: Learn how bits, characters, records, and files fit into a data hierarchy Explore the differences between text files and binary files Use the File class to identify, manage, and manipulate files - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java

Java

Chapter 9File Input and Output

Page 2: Java

Objectives

In this chapter you will: Learn how bits, characters, records, and files fit into a

data hierarchy Explore the differences between text files and binary

files Use the File class to identify, manage, and

manipulate files Perform data input and output with text files Perform data input and output with binary files

Page 3: Java

File Input and Output

Most real-world applications use data files Data stored in files are called persistent

data Reading data from a file is called file input Writing data to a file is called file output File processing refers to file input or file

output

Page 4: Java

File Input and Output (continued) Two types of files

Text files contain only human-readable characters

Binary files contain human-readable characters and other characters understood by the software or hardware

Files containing data needed by an application may be either text or binary

Page 5: Java

Inputting Data from a Text File

Many programs are designed to use external data External data can be numeric

Stock prices, GPS coordinates temperatures External data can be string

Names, descriptions, passwords If such data is stored permanently in a data file,

and is designed to be human-readable, it is a text file

Page 6: Java

Text File Organization

Recall all data ultimately is a sequence of 0s and 1s, which represent two states of electronic circuits: on and off

A localized group of 8 bits forms a byte and bytes represent characters

Example: ‘A’ is 65 in Unicode, 01000001 in binary:

0X27+ 1X26+ 0X25+ 0X24+ 0X23+ 0X22+ 0X21+ 1X20

Page 7: Java

Text File Organization (continued) A data field is a group of characters that has a

specific meaningExample: last_name, student_ID, test_score

A data record is a group of related fieldsExample: Smith 12345 95.5Attributes of the same individual

A data file is a group of related data records stored in a single file

Page 8: Java

Text File Organization (continued)

Page 9: Java

The File Class The File class establishes the file’s name and

location and opens the file for input If the file is in a directory other than the current,

its path must be specified The relative path is the path of folders that leads

to the file relative to the current file The absolute path is the path from the drive

letter to the file The syntax for declaring a File object: File myFl = new File (“./mydata.txt”);

Page 10: Java

The FileReader and BufferedReader Classes After the data file is established using a File

object, the data in the file can be read A source file provides data to a program Analogous to a pipeline

The pipeline has 2 ends connected to the source (the input file) and destination (the program file)

The pipeline has a valve that controls the amount of data allowed into the program

Page 11: Java

The FileReader and BufferedReader Classes (continued)

Page 12: Java

The FileReader and BufferedReader Classes (continued) Establish a data source

File infl = new File (“./source.txt”); Create a pipeline from source to program

FileReader frdr =

new FileReader (infl); Create a valve

BufferedReader aBfrd =

new BufferedReader(frdr);

Page 13: Java

The FileReader and BufferedReader Classes (continued)

Read one line of data

String aRcrd = aBfrd.readLine(); Input can also be read using the Scanner class

File infl = new File (./source.txt);

Scanner input = new Scanner (infl);

String aFld = input.next();

Page 14: Java

Apply the Concept

Develop an application to read IDs, names, and scores of students from a file and display the average score for each student

A while loop tests whether the program is at the end of the student names file

As IDs are read scores are read and totalScore and scoreCount are updated

Page 15: Java

Working with Directories

The file object has many methods. The file can be a folder or directory. Review the API documentation for all of

the methods. http://java.sun.com/j2se/1.4.2/docs/api/index.html

Note the list() and list(filter) methods that can be used to return a list of files (as well as other folders) in a folder.

Page 16: Java

Outputting Data to a Text File

Previously we have accessed data from a source file

Next, we output data to a destination file A destination file receives data from a

program

Page 17: Java

The File Class

File objects for output are created just as for input

Unlike source files, destination files do not have to exist before the program is run

If the destination file already exists, it is overwritten when the program is run

If the destination file does not exist, it is created

Page 18: Java

The File Class (continued)

Page 19: Java

The FileWriter and PrintWriter Classes Instantiate a File object to create the data

destination Instantiate a FileWriter object to create a pipeline

from the program to the output file FileWriter throws an IOException if it can’t

create the output file Instantiate a PrintWriter object to enable writing

to the output file Use the println method in PrintWriter to write

the output

Page 20: Java

The FileWriter and PrintWriter Classes (continued)

Page 21: Java

Apply the Concept

Modify previous example to print each student’s score average to file, as well as to the command window

The application uses the same input files Import java.io.IOException, java.io.FileWriter, and java.io.PrintWriter

Instantiate a File object for writing output PrintWriter is declared outside of the try block

to be accessible in the finally block

Page 22: Java

Apply the Concept (continued)

A runtime error can occur if the output file location is nonexistent

Page 23: Java

Apply the Concept (continued)

Page 24: Java

Performing Input and Output with Binary Files The previous sections discussed reading from and

writing to text files Java classes Scanner, FileReader, BufferedReader, FileWriter, and PrintWriter work with pipelines or streams that carry text data

All files not classified as text files are binary files Binary files can be compiled programs, image files,

sound files, compressed files

Page 25: Java

Identifying an Input/Output File

The process of using the File class is the same for text files and binary files

Create a binary file to write to in the current directory

File file1 =

new File ( “./myFile.dat” );

Page 26: Java

Writing to a Binary File To write to a text file there are 5 steps:File oFl = new File ( “averages.txt”);

FileWriter fwt = new FileWriter (oFl);

PrintWriter pwt = new PrintWriter (fwt);

pwt.println (aLineOfData);

pwt.close(); To write to a binary file, substitute:

FileOutputStream for FileWriter DataOutputStream for PrintWriter writeChar for println

Page 27: Java

Reading from a Binary File

To read from a binary file, identify the input file using a File object

A FileInputStream object connects the input file to the program

The DataInputStream allows different types of data to be read

Methods in DataInputStream read different types of data

Page 28: Java

Reading from a Binary File

Page 29: Java

Summary

Data is arranged in a hierarchy: files, records, fields, characters, bits

The File class identifies a file to the program so that it can be read from or written to

An absolute path is the path from the drive letter to the file

A relative path is the path to the file relative to the current file

The class FileReader reads a continuous stream of characters from a text file

Page 30: Java

Summary (continued)

The class BufferedReader controls the flow of characters through the FileReader object

The class FileWriter establishes a data stream from the program to a text file

The class PrintWriter enables writing formatted text to a text file

The classes FileOutputStream and DataOutputStream write program data to binary files

The classes FileInputStream and DataInputStream read data from binary files