Listing 7: ViewFile.java uses FileViewer to view a file on the console

import java.io.*;

class ViewFile
{
    public static void main(String[] args) throws Exception
    {
        FileViewer fv = new FileViewer(args[0]);
        BufferedReader in =
            new BufferedReader(
                new InputStreamReader(System.in)
                              );
        
        boolean stillViewing = true;
        while (stillViewing)
        {
            switch (getCommand(in))
            {
            case 'n':
            case 'd':
                fv.next();
                break;

            case 'p':
            case 'u':
                fv.previous();
                break;

            case 'f':
            case 't':
                fv.first();
                break;

            case 'l':
            case 'b':
                fv.last();
                break;

            case 'q':
            case 'e':
            case 'c':
            case 'x':
               stillViewing = false;
               break;

            default:
                System.out.println("=== Try again ===");
            }
        }

        fv.close();
    }

    static char getCommand(BufferedReader in) throws IOException
    {
        // Prompt for a user command
        // ... implementation omitted
    }
}
— End of Listing —