SlideShare a Scribd company logo
File Input and Output
Objectives
 After you have read and studied this chapter, you should
be able to
 Use File object to get info about a file
 Include a JFileChooser object in your program to let the user
specify a file.
 Write bytes to a file and read them back from the file, using
FileOutputStream and FileInputStream.
 Write values of primitive data types to a file and read them back
from the file, using DataOutputStream and DataInputStream.
 Write text data to a file and read them back from the file, using
FileWriter,PrintWriter and FileReader,BufferedReader
 Read a text file using Scanner
File
 File is regarded as a collection of bytes
 When a file is read, computer delivers some of
those bytes to the program.
 When a file is written, computer accepts some
bytes from the program and saves them in part
of the file.
 Computer makes no distinction between eg.
image files and text files. Its all bytes to the
hardware. What those bytes are used for is up
to the software.
Types of File
 All information in any file is kept in binary form.
Types of File
 File can be categorized as text (ASCII) file or binary file.
 A text file is a file that contains bytes that represent:
 characters 'A' through 'Z'
 characters 'a' through 'z'
 characters '0' through '9'
 the space character
 punctuation and symbols like . , : ; " + - $ (and others)
 a few control characters that represent end of lines, tabs and some
other things.
using ASCII Codes
 A binary file is a file that contains bytes that represent
others (eg. numbers, image, audio, formatted text etc)
The File Class The File class (from java.io). can be used to obtain info about file
 To do this, we must first create a File object
 A File object can represent a file or a directory
File inFile = new File(“sample.dat”);
File inFile = new File
(“C:/SamplePrograms/test.dat”);
Creates File object for
the file sample.dat in the
current directory.
Creates File object for
the file sample.dat in the
current directory.
Creates File object for
the file test.dat in the
directory
C:SamplePrograms
using the generic file
separator / and
providing the full
pathname.
Creates File object for
the file test.dat in the
directory
C:SamplePrograms
using the generic file
separator / and
providing the full
pathname.
Some File Methods
if ( inFile.exists( ) ) {
if ( inFile.isFile() ) {
File directory = new
File("C:/JavaPrograms/Ch12");
String filename[] = directory.list();
for (int i = 0; i < filename.length; i++) {
System.out.println(filename[i]);
}
To see if inFile is
associated to a real file
correctly.
To see if inFile is
associated to a real file
correctly.
To see if inFile is
associated to a file. If
false, it is a directory.
Also, can test directly if it
is a directory.
To see if inFile is
associated to a file. If
false, it is a directory.
Also, can test directly if it
is a directory.
List the name of all files
in the directory
C:JavaProjectsCh12
List the name of all files
in the directory
C:JavaProjectsCh12
if ( inFile.isDirectory() ) {
Some File Methods
if ( inFile.length( ) ) {
if ( inFile.canRead() ) {
To see the size of the file
in bytes represented by
inFile
To see the size of the file
in bytes represented by
inFile
To see if inFile is
associated to a file that
exist & can be read
To see if inFile is
associated to a file that
exist & can be read
if ( inFile.canWrite() ) { To see if inFile is
associated to a file that
exist & can be written
To see if inFile is
associated to a file that
exist & can be written
if ( inFile.getName() ) { To get the name of the
file represented by inFile
To get the name of the
file represented by inFile
The JFileChooser Class
 A javax.swing.JFileChooser object allows
the user to select a file.
JFileChooser chooser = new JFileChooser( );
chooser.showOpenDialog(null);
JFileChooser chooser = new JFileChooser("D:/JavaPrograms/Ch12");
chooser.showOpenDialog(null);
To start the listing from a specific directory:
The JFileChooser Class
Getting Info from
JFileChooser
int status = chooser.showOpenDialog(null);
if (status == JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null, "Open is clicked");
} else { //== JFileChooser.CANCEL_OPTION
JOptionPane.showMessageDialog(null, "Cancel is clicked");
}
File selectedFile = chooser.getSelectedFile();
File currentDirectory = chooser.getCurrentDirectory();
I/O Streams
 To read data from or write data to a file,
we must create one of the Java stream
objects and attach it to the file.
 A stream is a sequence of data items,
usually 8-bit bytes.
 Java has two types of streams: an input
stream and an output stream.
 An input stream has a source form
which the data items come, and an
output stream has a destination to which
I/O Streams
I/O Streams
 IO streams are either character-oriented or byte-
oriented.
 Character-oriented IO has special features for
handling character data (text files).
 Byte-oriented IO is for all types of data (binary files)
IO class
Hierarchy
in java.io
package
Streams for Byte –level Binary File I/O
 FileOutputStream and
FileInputStream are two stream objects
that facilitate file access.
 FileOutputStream allows us to output a
sequence of bytes; values of data type
byte.
 FileInputStream allows us to read in an
array of bytes.
Sample: Byte-level Binary
File Output//set up file and stream
File outFile = new File("sample1.data");
FileOutputStream
outStream = new FileOutputStream( outFile );
//data to save
byte[] byteArray = {10, 20, 30, 40,
50, 60, 70, 80};
//write data to the stream
outStream.write( byteArray );
//output done, so close the stream
outStream.close();
Sample: Byte-level Binary
File Input//set up file and stream
File inFile = new File("sample1.data");
FileInputStream inStream = new FileInputStream(inFile);
//set up an array to read data in
int fileSize = (int)inFile.length();
byte[] byteArray = new byte[fileSize];
//read data in and display them
inStream.read(byteArray);
for (int i = 0; i < fileSize; i++) {
System.out.println(byteArray[i]);
}
//input done, so close the stream
inStream.close();
Streams for Data-Level Binary File I/O
 FileOutputStream and
DataOutputStream are used to output
primitive data values
 FileInputStream and DataInputStream
are used to input primitive data values
 To read the data back correctly, we
must know the order of the data stored
and their data types
Setting up
DataOutputStream A standard sequence to set up a DataOutputStream
object:
Sample Output
import java.io.*;
class Ch12TestDataOutputStream {
public static void main (String[] args) throws IOException {
. . . //set up outDataStream
//write values of primitive data types to the stream
outDataStream.writeInt(987654321);
outDataStream.writeLong(11111111L);
outDataStream.writeFloat(22222222F);
outDataStream.writeDouble(3333333D);
outDataStream.writeChar('A');
outDataStream.writeBoolean(true);
//output done, so close the stream
outDataStream.close();
}
}
Setting up DataInputStream A standard sequence to set up a DataInputStream object:
Sample Input
import java.io.*;
class Ch12TestDataInputStream {
public static void main (String[] args) throws IOException {
. . . //set up inDataStream
//read values back from the stream and display them
System.out.println(inDataStream.readInt());
System.out.println(inDataStream.readLong());
System.out.println(inDataStream.readFloat());
System.out.println(inDataStream.readDouble());
System.out.println(inDataStream.readChar());
System.out.println(inDataStream.readBoolean());
//input done, so close the stream
inDataStream.close();
}
}
Reading Data Back in Right
Order The order of write and read operations must match in
order to read the stored primitive data back correctly.
Reading & Writing Textfile
 Instead of storing primitive data values
as binary data in a file, we can convert
and store them as a string data.
This allows us to view the file content using
any text editor
 To write data as a string to text file, use
a FileWriter and PrintWriter object
 To read data from textfile, use
FileReader and BufferedReader classes
From Java 5.0 (SDK 1.5), we can also use
the Scanner class for reading textfiles
Sample Writing to Textfile
import java.io.*;
class Ch12TestPrintWriter {
public static void main (String[] args) throws IOException {
//set up file and stream
File outFile = new File("sample3.data");
FileWriter outFileStream
= new FileWriter(outFile);
PrintWriter outStream = new PrintWriter(outFileStream);
//write values of primitive data types to the stream
outStream.println(987654321);
outStream.println("Hello, world.");
outStream.println(true);
//output done, so close the stream
outStream.close();
}
}
Sample Reading from
Textfileimport java.io.*;
class Ch12TestBufferedReader {
public static void main (String[] args) throws IOException {
//set up file and stream
File inFile = new File("sample3.data");
FileReader fileReader = new FileReader(inFile);
BufferedReader bufReader = new BufferedReader(fileReader);
String str;
str = bufReader.readLine();
int i = Integer.parseInt(str);
//similar process for other data types
bufReader.close();
}
}
Sample Reading Textfile
using Scanner
import java.io.*;
class Ch12TestScanner {
public static void main (String[] args) throws IOException {
//open the Scanner
File inFile = new File("sample3.data");
Scanner scanner = new Scanner(inFile);
//get integer
int i = scanner.nextInt();
//similar process for other data types
scanner.close();
}
}
try{
// read line one by one till all line is read.
Scanner scanner = new Scanner(inFile);
while (scanner.hasNextLine()) { //check if there are more line
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Sample Reading Textfile using Scanner
Code fragments shows how to read the whole contents of a file
Use hasNextLine() & nextLine() methods

More Related Content

PDF
Java I/o streams
PPT
Java Input Output and File Handling
PPT
Static and Dynamic polymorphism in C++
PPTX
File in C language
PPTX
PPTX
classes and objects in C++
PDF
Access specifiers (Public Private Protected) C++
PPTX
File Management in C
Java I/o streams
Java Input Output and File Handling
Static and Dynamic polymorphism in C++
File in C language
classes and objects in C++
Access specifiers (Public Private Protected) C++
File Management in C

What's hot (20)

PPTX
Python: Modules and Packages
PPTX
FUNCTION DEPENDENCY AND TYPES & EXAMPLE
PPTX
Arrays in c
PPTX
Constructor and Types of Constructors
PPTX
SQL Functions
PPTX
java interface and packages
PPT
Function in C Language
PPTX
Templates in c++
PPTX
PPTX
Pointers in C Programming
PPTX
Applets in java
PPTX
Chapter 06 constructors and destructors
PPT
friend function(c++)
PPTX
File handling in c
PPTX
sSCOPE RESOLUTION OPERATOR.pptx
PDF
PPTX
Function in C program
PPT
SQLITE Android
PPTX
Templates in C++
Python: Modules and Packages
FUNCTION DEPENDENCY AND TYPES & EXAMPLE
Arrays in c
Constructor and Types of Constructors
SQL Functions
java interface and packages
Function in C Language
Templates in c++
Pointers in C Programming
Applets in java
Chapter 06 constructors and destructors
friend function(c++)
File handling in c
sSCOPE RESOLUTION OPERATOR.pptx
Function in C program
SQLITE Android
Templates in C++
Ad

Similar to File Input & Output (20)

PPTX
Chapter 10.3
PPT
Chapter 12 - File Input and Output
PPT
Java căn bản - Chapter12
PPTX
Chapter 10.1
PPT
File Input and Output in Java Programing language
PDF
Lecture 11.pdf
PDF
CSE3146-ADV JAVA M2.pdf
PPTX
chapter 2(IO and stream)/chapter 2, IO and stream
PPT
Itp 120 Chapt 19 2009 Binary Input & Output
PPTX
IOStream.pptx
PDF
Programming language JAVA Input output opearations
PPTX
File Handling in Java Oop presentation
PPTX
File Input and output.pptx
PPTX
IO Programming.pptx all informatiyon ppt
PDF
Java Day-6
PPT
Comp102 lec 11
PDF
11_Str11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.eams.pdf
PPTX
Java Input Output (java.io.*)
PPTX
Input/Output Exploring java.io
Chapter 10.3
Chapter 12 - File Input and Output
Java căn bản - Chapter12
Chapter 10.1
File Input and Output in Java Programing language
Lecture 11.pdf
CSE3146-ADV JAVA M2.pdf
chapter 2(IO and stream)/chapter 2, IO and stream
Itp 120 Chapt 19 2009 Binary Input & Output
IOStream.pptx
Programming language JAVA Input output opearations
File Handling in Java Oop presentation
File Input and output.pptx
IO Programming.pptx all informatiyon ppt
Java Day-6
Comp102 lec 11
11_Str11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.eams.pdf
Java Input Output (java.io.*)
Input/Output Exploring java.io
Ad

More from PRN USM (19)

PPT
Graphical User Interface (GUI) - 2
PPT
Graphical User Interface (GUI) - 1
PPT
Exception Handling
PPT
Inheritance & Polymorphism - 2
PPT
Inheritance & Polymorphism - 1
PPT
Array
PPT
Class & Object - User Defined Method
PPT
Class & Object - Intro
PPT
Repetition Structure
PPT
Selection Control Structures
PPT
Numerical Data And Expression
PPT
Introduction To Computer and Java
PPS
Corporate Social Responsibility And Challenges In Creating Smoke Free Environ...
PPS
Empowering Women Towards Smokefree Homes
PPS
Sfe The Singaporean Experience
PPS
Corporate Social Responsibility And Challenges In Creating Smoke Free Environ...
PPS
Malaysian Health Promotion Board (Mhpb) Objectives, Functions And Priorities
PPS
Role Of Ng Os In Tobacco Control
PPS
Application Of Grants From Mhpb
Graphical User Interface (GUI) - 2
Graphical User Interface (GUI) - 1
Exception Handling
Inheritance & Polymorphism - 2
Inheritance & Polymorphism - 1
Array
Class & Object - User Defined Method
Class & Object - Intro
Repetition Structure
Selection Control Structures
Numerical Data And Expression
Introduction To Computer and Java
Corporate Social Responsibility And Challenges In Creating Smoke Free Environ...
Empowering Women Towards Smokefree Homes
Sfe The Singaporean Experience
Corporate Social Responsibility And Challenges In Creating Smoke Free Environ...
Malaysian Health Promotion Board (Mhpb) Objectives, Functions And Priorities
Role Of Ng Os In Tobacco Control
Application Of Grants From Mhpb

Recently uploaded (20)

PDF
Basic Mud Logging Guide for educational purpose
PPTX
Institutional Correction lecture only . . .
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
master seminar digital applications in india
PPTX
Cell Structure & Organelles in detailed.
PDF
01-Introduction-to-Information-Management.pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
Basic Mud Logging Guide for educational purpose
Institutional Correction lecture only . . .
VCE English Exam - Section C Student Revision Booklet
Supply Chain Operations Speaking Notes -ICLT Program
Renaissance Architecture: A Journey from Faith to Humanism
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPH.pptx obstetrics and gynecology in nursing
master seminar digital applications in india
Cell Structure & Organelles in detailed.
01-Introduction-to-Information-Management.pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
O7-L3 Supply Chain Operations - ICLT Program
Final Presentation General Medicine 03-08-2024.pptx
Module 4: Burden of Disease Tutorial Slides S2 2025
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Microbial disease of the cardiovascular and lymphatic systems
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
TR - Agricultural Crops Production NC III.pdf

File Input & Output

  • 1. File Input and Output
  • 2. Objectives  After you have read and studied this chapter, you should be able to  Use File object to get info about a file  Include a JFileChooser object in your program to let the user specify a file.  Write bytes to a file and read them back from the file, using FileOutputStream and FileInputStream.  Write values of primitive data types to a file and read them back from the file, using DataOutputStream and DataInputStream.  Write text data to a file and read them back from the file, using FileWriter,PrintWriter and FileReader,BufferedReader  Read a text file using Scanner
  • 3. File  File is regarded as a collection of bytes  When a file is read, computer delivers some of those bytes to the program.  When a file is written, computer accepts some bytes from the program and saves them in part of the file.  Computer makes no distinction between eg. image files and text files. Its all bytes to the hardware. What those bytes are used for is up to the software.
  • 4. Types of File  All information in any file is kept in binary form.
  • 5. Types of File  File can be categorized as text (ASCII) file or binary file.  A text file is a file that contains bytes that represent:  characters 'A' through 'Z'  characters 'a' through 'z'  characters '0' through '9'  the space character  punctuation and symbols like . , : ; " + - $ (and others)  a few control characters that represent end of lines, tabs and some other things. using ASCII Codes  A binary file is a file that contains bytes that represent others (eg. numbers, image, audio, formatted text etc)
  • 6. The File Class The File class (from java.io). can be used to obtain info about file  To do this, we must first create a File object  A File object can represent a file or a directory File inFile = new File(“sample.dat”); File inFile = new File (“C:/SamplePrograms/test.dat”); Creates File object for the file sample.dat in the current directory. Creates File object for the file sample.dat in the current directory. Creates File object for the file test.dat in the directory C:SamplePrograms using the generic file separator / and providing the full pathname. Creates File object for the file test.dat in the directory C:SamplePrograms using the generic file separator / and providing the full pathname.
  • 7. Some File Methods if ( inFile.exists( ) ) { if ( inFile.isFile() ) { File directory = new File("C:/JavaPrograms/Ch12"); String filename[] = directory.list(); for (int i = 0; i < filename.length; i++) { System.out.println(filename[i]); } To see if inFile is associated to a real file correctly. To see if inFile is associated to a real file correctly. To see if inFile is associated to a file. If false, it is a directory. Also, can test directly if it is a directory. To see if inFile is associated to a file. If false, it is a directory. Also, can test directly if it is a directory. List the name of all files in the directory C:JavaProjectsCh12 List the name of all files in the directory C:JavaProjectsCh12 if ( inFile.isDirectory() ) {
  • 8. Some File Methods if ( inFile.length( ) ) { if ( inFile.canRead() ) { To see the size of the file in bytes represented by inFile To see the size of the file in bytes represented by inFile To see if inFile is associated to a file that exist & can be read To see if inFile is associated to a file that exist & can be read if ( inFile.canWrite() ) { To see if inFile is associated to a file that exist & can be written To see if inFile is associated to a file that exist & can be written if ( inFile.getName() ) { To get the name of the file represented by inFile To get the name of the file represented by inFile
  • 9. The JFileChooser Class  A javax.swing.JFileChooser object allows the user to select a file. JFileChooser chooser = new JFileChooser( ); chooser.showOpenDialog(null); JFileChooser chooser = new JFileChooser("D:/JavaPrograms/Ch12"); chooser.showOpenDialog(null); To start the listing from a specific directory:
  • 11. Getting Info from JFileChooser int status = chooser.showOpenDialog(null); if (status == JFileChooser.APPROVE_OPTION) { JOptionPane.showMessageDialog(null, "Open is clicked"); } else { //== JFileChooser.CANCEL_OPTION JOptionPane.showMessageDialog(null, "Cancel is clicked"); } File selectedFile = chooser.getSelectedFile(); File currentDirectory = chooser.getCurrentDirectory();
  • 12. I/O Streams  To read data from or write data to a file, we must create one of the Java stream objects and attach it to the file.  A stream is a sequence of data items, usually 8-bit bytes.  Java has two types of streams: an input stream and an output stream.  An input stream has a source form which the data items come, and an output stream has a destination to which
  • 14. I/O Streams  IO streams are either character-oriented or byte- oriented.  Character-oriented IO has special features for handling character data (text files).  Byte-oriented IO is for all types of data (binary files) IO class Hierarchy in java.io package
  • 15. Streams for Byte –level Binary File I/O  FileOutputStream and FileInputStream are two stream objects that facilitate file access.  FileOutputStream allows us to output a sequence of bytes; values of data type byte.  FileInputStream allows us to read in an array of bytes.
  • 16. Sample: Byte-level Binary File Output//set up file and stream File outFile = new File("sample1.data"); FileOutputStream outStream = new FileOutputStream( outFile ); //data to save byte[] byteArray = {10, 20, 30, 40, 50, 60, 70, 80}; //write data to the stream outStream.write( byteArray ); //output done, so close the stream outStream.close();
  • 17. Sample: Byte-level Binary File Input//set up file and stream File inFile = new File("sample1.data"); FileInputStream inStream = new FileInputStream(inFile); //set up an array to read data in int fileSize = (int)inFile.length(); byte[] byteArray = new byte[fileSize]; //read data in and display them inStream.read(byteArray); for (int i = 0; i < fileSize; i++) { System.out.println(byteArray[i]); } //input done, so close the stream inStream.close();
  • 18. Streams for Data-Level Binary File I/O  FileOutputStream and DataOutputStream are used to output primitive data values  FileInputStream and DataInputStream are used to input primitive data values  To read the data back correctly, we must know the order of the data stored and their data types
  • 19. Setting up DataOutputStream A standard sequence to set up a DataOutputStream object:
  • 20. Sample Output import java.io.*; class Ch12TestDataOutputStream { public static void main (String[] args) throws IOException { . . . //set up outDataStream //write values of primitive data types to the stream outDataStream.writeInt(987654321); outDataStream.writeLong(11111111L); outDataStream.writeFloat(22222222F); outDataStream.writeDouble(3333333D); outDataStream.writeChar('A'); outDataStream.writeBoolean(true); //output done, so close the stream outDataStream.close(); } }
  • 21. Setting up DataInputStream A standard sequence to set up a DataInputStream object:
  • 22. Sample Input import java.io.*; class Ch12TestDataInputStream { public static void main (String[] args) throws IOException { . . . //set up inDataStream //read values back from the stream and display them System.out.println(inDataStream.readInt()); System.out.println(inDataStream.readLong()); System.out.println(inDataStream.readFloat()); System.out.println(inDataStream.readDouble()); System.out.println(inDataStream.readChar()); System.out.println(inDataStream.readBoolean()); //input done, so close the stream inDataStream.close(); } }
  • 23. Reading Data Back in Right Order The order of write and read operations must match in order to read the stored primitive data back correctly.
  • 24. Reading & Writing Textfile  Instead of storing primitive data values as binary data in a file, we can convert and store them as a string data. This allows us to view the file content using any text editor  To write data as a string to text file, use a FileWriter and PrintWriter object  To read data from textfile, use FileReader and BufferedReader classes From Java 5.0 (SDK 1.5), we can also use the Scanner class for reading textfiles
  • 25. Sample Writing to Textfile import java.io.*; class Ch12TestPrintWriter { public static void main (String[] args) throws IOException { //set up file and stream File outFile = new File("sample3.data"); FileWriter outFileStream = new FileWriter(outFile); PrintWriter outStream = new PrintWriter(outFileStream); //write values of primitive data types to the stream outStream.println(987654321); outStream.println("Hello, world."); outStream.println(true); //output done, so close the stream outStream.close(); } }
  • 26. Sample Reading from Textfileimport java.io.*; class Ch12TestBufferedReader { public static void main (String[] args) throws IOException { //set up file and stream File inFile = new File("sample3.data"); FileReader fileReader = new FileReader(inFile); BufferedReader bufReader = new BufferedReader(fileReader); String str; str = bufReader.readLine(); int i = Integer.parseInt(str); //similar process for other data types bufReader.close(); } }
  • 27. Sample Reading Textfile using Scanner import java.io.*; class Ch12TestScanner { public static void main (String[] args) throws IOException { //open the Scanner File inFile = new File("sample3.data"); Scanner scanner = new Scanner(inFile); //get integer int i = scanner.nextInt(); //similar process for other data types scanner.close(); } }
  • 28. try{ // read line one by one till all line is read. Scanner scanner = new Scanner(inFile); while (scanner.hasNextLine()) { //check if there are more line String line = scanner.nextLine(); System.out.println(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } Sample Reading Textfile using Scanner Code fragments shows how to read the whole contents of a file Use hasNextLine() & nextLine() methods

Editor's Notes

  • #7: When a program that manipulates a large amount of data practical, we must save the data to a file. If we don’t, then the user must reenter the same data every time he or she runs the program because any data used by the program will be erased from the main memory at program termination. If the data were saved, then the program can read them back from the file and rebuild the information so the user can work on the data without reentering them. In this chapter you will learn how to save data to and read data from a file. We call the action of saving data to a file file output and the action of reading data from a file file input. Note: The statements new File( “C:\SamplePrograms”, “one.txt”); and new File(“C:\SamplePrograms\one.text”); will open the same file.
  • #10: We can start the listing from a current directory by writing String current = System.getProperty(&amp;quot;user.dir&amp;quot;); JFileChooser chooser = new JFileChooser(current); or equivalently String current = System.getProperty(&amp;quot;user.dir&amp;quot;); JFileChooser chooser = new JFileChooser( ); chooser.setCurrentDirectory(new File(current));
  • #11: We can start the listing from a current directory by writing String current = System.getProperty(&amp;quot;user.dir&amp;quot;); JFileChooser chooser = new JFileChooser(current); or equivalently String current = System.getProperty(&amp;quot;user.dir&amp;quot;); JFileChooser chooser = new JFileChooser( ); chooser.setCurrentDirectory(new File(current));
  • #16: Data is saved in blocks of bytes to reduce the time it takes to save all of our data. The operation of saving data as a block is called data caching. To carry out data caching, part of memory is reserved as a data buffer or cache, which is used as a temporary holding place. Data are first written to a buffer. When the buffer becomes full, the data in the buffer are actually written to a file. If there are any remaining data in the buffer and the file is not closed, those data will be lost.
  • #17: class TestFileOutputStream { public static void main (String[] args) throws IOException { //set up file and stream FileoutFile = new File(&amp;quot;sample1.data&amp;quot;); FileOutputStreamoutStream = new FileOutputStream(outFile); //data to output byte[] byteArray = {10, 20, 30, 40, 50, 60, 70, 80}; //write data to the stream outStream.write(byteArray); //output done, so close the stream outStream.close(); } } The main method throws an exception. Exception handling is described in Section 11.4.
  • #18: import javabook.*; import java.io.*; class TestFileInputStream { public static void main (String[] args) throws IOException { MainWindow mainWindow = new MainWindow(); OutputBox outputBox = new OutputBox(mainWindow); mainWindow.setVisible( true ); outputBox.setVisible( true ); //set up file and stream FileinFile= new File(&amp;quot;sample1.data&amp;quot;); FileInputStream inStream = new FileInputStream(inFile); //set up an array to read data in int fileSize = (int)inFile.length(); byte[] byteArray = new byte[fileSize]; //read data in and display them inStream.read(byteArray); for (int i = 0; i &amp;lt; fileSize; i++) { outputBox.printLine(byteArray[i]); } //input done, so close the stream inStream.close(); } }