public class FileReadChars3
1: //FileReadChars3.java
3: import java.util.Scanner;
4: import java.io.FileReader;
5: import java.io.IOException;
7: public class FileReadChars3
8: {
9: /* Method closes a FileReader.
10: Prints exception message if closing fails
11: */
12: public static void closeFileReader(FileReader fileReader)
13: {
14: try
15: {
16: // Ensure fileReader references a valid object
17: if (fileReader != null)
18: {
19: System.out.println("Closing file.");
20: fileReader.close(); // close() may throw IOException if fails
21: }
22: }
23: catch (IOException closeExcpt)
24: {
25: System.out.println("Error closing file: " + closeExcpt.getMessage());
26: }
27: }
29: public static void main(String[] args)
30: {
31: Scanner scnr = new Scanner(System.in);
32: FileReader fileReader = null; // FileReader for reading chars
33: String fileName; // User defined file name
34: int charRead; // Data read from file
36: charRead = 0;
38: // Get file name from user
39: System.out.print("Enter a valid file name: ");
40: fileName = scnr.next();
42: try
43: {
44: // Prompt user for input
45: System.out.println("Opening file " + fileName + ".");
46: // May throw FileNotFoundException
47: fileReader = new FileReader(fileName);
49: // Use file input stream
50: System.out.print("Reading character values: ");
51: while (charRead != -1) // -1 means end of file has been reached
52: {
53: charRead = fileReader.read(); // May throw IOException
54: System.out.print(charRead + " ");
55: }
56: System.out.println();
57: }
58: catch (IOException excpt)
59: {
60: System.out.println("Caught IOException: " + excpt.getMessage());
61: }
62: finally
63: {
64: closeFileReader(fileReader); // Ensure file is closed!
65: }
66: }
67: }