Undo / Redo functionality can be added to document classes in the javax.swing.text package very easily. All you need to do is add a listener for changes, and use a UndoManager to alter those changes.
In order to read a text file, you can use the BufferedReader class in the java.io package. The following simple class starts up,
reads a text file and prints each line to the screen, then closes the text file and exits.