Java
Download
1 / 30

Java - PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Java' - kamuzu


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Java

Chapter 9

File Input and Output


Objectives
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


File input and output
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


File input and output continued
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


Inputting data from a text file
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


Text file organization
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


Text file organization continued
Text File Organization (continued)

  • A data field is a group of characters that has a specific meaning

    • Example: last_name, student_ID, test_score

  • A data record is a group of related fields

    • Example: Smith 12345 95.5

    • Attributes of the same individual

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



The file class
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”);


The filereader and bufferedreader classes
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


The filereader and bufferedreader classes continued
The FileReader and BufferedReader Classes (continued)


The filereader and bufferedreader classes continued1
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);


The filereader and bufferedreader classes continued2
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();


Apply the concept
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


Working with directories
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.


Outputting data to a text file
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


The file class1
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


The file class continued
The File Class (continued)


The filewriter and printwriter classes
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


The filewriter and printwriter classes continued
The FileWriter and PrintWriter Classes (continued)


Apply the concept1
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


Apply the concept continued
Apply the Concept (continued)

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



Performing input and output with binary files
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


Identifying an input output file
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” );


Writing to a binary file
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


Reading from a binary file
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



Summary
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


Summary continued
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


ad