FileDocCategorySizeDatePackage
FileViewer.javaAPI DocExample2098Sat Jun 02 03:11:32 BST 2001None

FileViewer.java

// This example is from the book _Java in a Nutshell_ by David Flanagan.
// Written by David Flanagan.  Copyright (c) 1996 O'Reilly & Associates.
// You may study, use, modify, and distribute this example for any purpose.
// This example is provided WITHOUT WARRANTY either expressed or implied.

import java.awt.*;
import java.io.*;

public class FileViewer extends Frame {
    Button close;
    // Query the size of the specified file, create an array of bytes big
    // enough, and read it in.  Then create a TextArea to display the text
    // and a "Close" button to pop the window down.
    public FileViewer(String filename) throws IOException {
        super("FileViewer: " + filename);
        File f = new File(filename);
        int size = (int) f.length();
        int bytes_read = 0;
        FileInputStream in = new FileInputStream(f);
        byte[] data = new byte[size];
        while(bytes_read < size)
            bytes_read += in.read(data, bytes_read, size-bytes_read);
        
        TextArea textarea = new TextArea(new String(data, 0), 24, 80);
        textarea.setFont(new Font("Helvetica", Font.PLAIN, 12));
        textarea.setEditable(false);
        this.add("Center", textarea);
        
        close = new Button("Close");
        this.add("South", close);
        this.pack();
        this.show();
    }
    
    // Handle the close button by popping this window down 
    public boolean action(Event e, Object what) {
        if (e.target == close) {
            this.hide();
            this.dispose();
            return true;
        }
        return false;
    }
    
    // The FileViewer can be used by other classes, or it can be
    // used standalone with this main() method.
    static public void main(String[] args) throws IOException {
        if (args.length != 1) {
            System.out.println("Usage: java FileViewer <filename>");
            System.exit(0);
        }
        try { Frame f = new FileViewer(args[0]); }
        catch (IOException e) { System.out.println(e); }
    }
}