Transcript Unit 11

Introduction to Programming
G50PRO
University of Nottingham
Unit 11 : Files Input/Ouput
Paul Tennent
http://paultennent.wordpress.com/G50PRO.html
[email protected]
Room C7
Overview








2
Java I/O
UserInput Class Demo
Exceptions Intro
try, catch, and finally blocks
Exceptions Example
Files I/O
File Examples
Extra Reading
http://www.cs.nott.ac.uk/~eoe
Java I/O

Input/output operations direct data from the keyboard, files or
programs into your program and from there to the screen,
printer, files or other programs.

Java uses the concept of streams to manage this flow of data.

System.in and System.out objects read and write from the
standard input and output streams.

Java also uses file streams, data streams, pipe streams and
object streams to manipulate I/O.
For these streams you must access the io class library using:

3
import java.io.*
http://www.cs.nott.ac.uk/~eoe
UserInput Class Demo
// readChar Method
public static char readChar() {
char returnValue = 'a';
DataInputStream dis = new DataInputStream(System.in);
try {
String userInput = new String(dis.readLine());
//return just the first character
returnValue = userInput.charAt(0);
} catch(Exception e) {
System.out.println("Exception while reading user's
input as a char");
}
return returnValue;
} // end readChar()
4
http://www.cs.nott.ac.uk/~eoe
Exceptions Intro

The Java programming language uses exceptions to enable the
developer to handle errors or exceptional events

The term exception is shorthand for the phrase "exceptional event."

An exception is an event that occurs during the execution of a
program that disrupts the normal flow of instructions

5
try, catch, and finally blocks are used to write an exception handler
http://www.cs.nott.ac.uk/~eoe
try, catch, and finally blocks

enclose the code that might throw an exception within a try block

provide one or more catch blocks directly after the try block to
deal with different expected exceptions

Each catch block is an exception handler and handles the type of
exception indicated by its argument

The finally block always executes when the try block exits. This
ensures that the finally block is executed even if an unexpected
exception occurs – usually used for cleanup code
6
http://www.cs.nott.ac.uk/~eoe
Exceptions Example :
public static void main (String[] args){
int[] ar = new int[10];
try {
//trying to write to the 10th element of the array
ar[10] = 0;
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Caught "
+ "ArrayIndexOutOfBoundsException: "
+
e.getMessage());
} finally {
System.out.println("finally block executed");
}
}//end main
7
http://www.cs.nott.ac.uk/~eoe
Files I/O
Access file properties by creating a file handle
using File class



Use file streams which are primitive streams
whose sources or destinations are files.



8
File myFile = new File(“data.txt");
// name in current dir
A file handle can be used d by various file class methods
to access the properties of a specific file
Byte based streams [8-bit]
FileInputStream and FileOutputStream
Character based streams [16-bit]
FileReader and FileWriter
http://www.cs.nott.ac.uk/~eoe
Example : Read File
public static void main( String[] args ) {
try{
int n;
FileInputStream fis = new FileInputStream("data1.csv");
while ( ( n = fis.available() ) > 0 ) {
byte[] b = new byte[ n ];
int result = fis.read( b );
if ( result != -1 ){
String s = new String( b );
System.out.print( s );
}
} // end while
} catch ( IOException e ) {
System.err.println( "Error: " + e.getMessage() ); }
}9 // end main
http://www.cs.nott.ac.uk/~eoe
Example : Create empty File
public static void main( String[] args ) {
Path file = “data.txt”;
try {
file.createFile();
//Create the empty file with default permissions, etc.
} catch (FileAlreadyExists x) {
System.err.println("file named already exists”);
} catch (IOException x) {
//Some other sort of failure, such as permissions.
System.err.println(“Error:” + x.getMessage());
}
} // end main
10
http://www.cs.nott.ac.uk/~eoe
Example : Write to File
public static void main( String[] args ) {
FileOutputStream fos;
try{
fos = new FileOutputStream( "data.txt" );
String s = "Test write to file ";
byte data[] = s.getBytes();
fos.write( data );
} catch ( IOException e ) {
System.err.println( e.getMessage() );
}
} //end main
11
http://www.cs.nott.ac.uk/~eoe
Extra Reading

12
http://java.sun.com/docs/books/tutorial/essent
ial/io/file.html
http://www.cs.nott.ac.uk/~eoe
Summary








13
Java I/O
UserInput Class Demo
Exceptions Intro
try, catch, and finally blocks
Exceptions Example
Files I/O
File Examples
Extra Reading
http://www.cs.nott.ac.uk/~eoe