Practicing with File I/O

Introduction

The goal of this lab is to practice working with Java file I/O by adding load/save functionality to the Document class you completed in a previous lab.

The code for this lab was originally designed as a command-line Java application so you may want to run it in the terminal. It is also fine to run it through the Eclipse console.

As a reminder, you can follow the following steps to compile and execute a Java program in a Linux/OSX terminal:

$ cd the_directory_where_your_code_is_stored
$ javac File1.java File2.java ...
$ java File1

This example assumes that File1.java contains the main method for the application.

Resources

Useful API documents:

Files

The following unfinished files are provided:

Instructions - Part 1

Download the files above and complete Document.java so that the unfinished methods conform to the Javadoc comments. Test your completed file by running the provided application program.

Instructions - Part 2

The current implementation of the Editor class does not include code for handling exceptions related to file I/O: If you attempt to open a non-existent file, or to write a file to a location where do not have permission, the application will crash.

Modify Editor.java by removing all throws declarations and adding try/catch blocks to saveFile and loadFile. If an exception occurs, these methods should print a helpful error message and then allow execution to proceed normally.

Instructions - Part 3 (If Time)

Most text editors allow you to save the current document without re-entering the file name. Modify the Editor class so that it provides this functionality. If the file is already associated with a file name (because of an earlier save or load) then the "s" command should now save the current version without prompting for a file name. You should also add a save-as command to allow specifying a file name even if one already exists. Use "w" to trigger save-as. Make sure to update the help message to conform to the new functionality.

Submitting

Submit your completed versions of Document.java and Editor.java through Autolab. Style checking is turned off, and you have an unlimited number of submissions. If you have trouble with your submission, you may find it helpful to look at the JUnit submission tests: DocumentTestWithIO.java, EditorTest.java.