260 likes | 368 Views
Java Programming, Second Edition. Chapter Sixteen File Input and Output. In this chapter, you will:. Use the File class Understand data file organization and streams Use streams Write to and read from a file. Write formatted file data Read formatted file data Use a variable file name
E N D
Java Programming, Second Edition Chapter Sixteen File Input and Output
In this chapter, you will: Use the File class Understand data file organization and streams Use streams Write to and read from a file
Write formatted file data Read formatted file data Use a variable file name Create random access files
Using the File Class • File- Describes the objects that computers store on permanent storage devices such as hard, floppy or zip drives, reels of magnetic tape, or compact disks • Data files contain facts and figures • Program files, also called applications, store software instructions • Other files can store graphics, text, or operating system instructions
Using the File Class • Files share common characteristics • Each file occupies a section of disk or other storage device • Each file has a name and a specific time of creation
Using the File Class • File class- To gather file information • File class does not provide any opening, processing, or closing capabilities for files • Use the File class to obtain information about a file, such as whether it exists or is open, its size, and its last modification date • Must include the statement • import java.io.*
Using the File Class • The java.io package contains all the classes you use in file processing • File class is a direct descendant of the Object class • Create a File object using a constructor that includes a filename • File someData = new File(“data.txt”);
Understanding Data File Organization • Variables are stored in the computer’s main or primary memory, which is called RAM • When you need to retain data for a long amount of time, save the data on a permanent or secondary storage device such as a floppy disk, hard drive, or compact disk
Understanding Data File Organization • A field is a group of characters that has some meaning • Fields are grouped together to form records • Records are grouped to create files
Understanding Streams • Java views files as a series of bytes • You can picture those bytes flowing into and out of your program through a stream, or a pipeline • A stream is an object, and like all objects, streams have data and methods
Using Streams • InputStream and OutputStream are abstract classes that contain methods for performing input and output • Must be overridden in their child classes • InputStream and OutputStream are subclasses of the Object class
Using Streams • Buffer- A small memory location that you use to hold data temporarily
Writing to and Reading from a File • Instead of assigning files to the standard input and output devices, you can also assign a key file to the InputStream or OutputStream • For example, you can read data from the keyboard and store it to a disk • You can construct a FileOutputStream object and assign it to the OutputStream
Writing to and Reading from a File • You can associate a File object with the output stream in two ways • You can pass the filename to the constructor of the FileOutputStream class • You can create a File object passing the filename to the File constructor; then pass the File object to the constructor of the FileOutputStream class
Writing Formatted File Data • Use the DataInputStream and DataOutputStream classes to accomplish formatted input and output • DataOutputStream objects enable you to write binary data to an OutputStream • When you use a DataOutputStream connected to FileOutput Stream, this is known as chaining the stream objects
Writing Formatted File Data • The DataOutput interface includes methods such as: • writeBoolean() • writeChar() • writeDouble() • writeFloat() • writeInt()
Reading Formatted File Data • DataInputStream objects enable you to read binary data from an InputStream • DataInput interface is implemented by DataInputStream
Reading Formatted File Data • The DataInput interface includes methods such as • readByte() • readChar() • readDouble() • readFloat() • readInt() • readUTF()
Using a Variable Name • You can provide a variable filename to a program using the command line
Creating Random Access Files • Sequential access files access records in sequential order from beginning to end • Batch processing involves performing the same tasks with many records, one after the other
Creating Random Access Files • Random access files are files in which records can be accessed in any order • Also called direct access files • More efficient than sequential access files
Creating Random Access Files • The RandomAccessFile class contains the same read(), write() and close() methods as Input and OutputStream • Also contains seek() that lets you select a beginning position within the file before reading or writing data • Use Java's RandomAccessFile class to create your own random access files
Creating Random Access Files • Real-time applications • Require that a record be accessed immediately while a client is waiting • Require random access files