// Fig. 17.4: FileTest.java // Demonstrating the File class. import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class FileTest extends JFrame implements ActionListener { private JTextField enterField; private JTextArea outputArea; // set up GUI public FileTest() { super( "Testing class File" ); enterField = new JTextField( "Enter file or directory name here" ); enterField.addActionListener( this ); outputArea = new JTextArea(); ScrollPane scrollPane = new ScrollPane(); scrollPane.add( outputArea ); Container container = getContentPane(); container.add( enterField, BorderLayout.NORTH ); container.add( scrollPane, BorderLayout.CENTER ); setSize( 400, 400 ); setVisible( true ); } // end constructor // display information about file user specifies public void actionPerformed( ActionEvent actionEvent ) { File name = new File( actionEvent.getActionCommand() ); // if name exists, output information about it if ( name.exists() ) { outputArea.setText( name.getName() + " exists\n" + ( name.isFile() ? "is a file\n" : "is not a file\n" ) + ( name.isDirectory() ? "is a directory\n" : "is not a directory\n" ) + ( name.isAbsolute() ? "is absolute path\n" : "is not absolute path\n" ) + "Last modified: " + name.lastModified() + "\nLength: " + name.length() + "\nPath: " + name.getPath() + "\nAbsolute path: " + name.getAbsolutePath() + "\nParent: " + name.getParent() ); // output information if name is a file if ( name.isFile() ) { // append contents of file to outputArea try { BufferedReader input = new BufferedReader( new FileReader( name ) ); StringBuffer buffer = new StringBuffer(); String text; outputArea.append( "\n\n" ); while ( ( text = input.readLine() ) != null ) buffer.append( text + "\n" ); outputArea.append( buffer.toString() ); } // process file processing problems catch( IOException ioException ) { JOptionPane.showMessageDialog( this, "FILE ERROR", "FILE ERROR", JOptionPane.ERROR_MESSAGE ); } } // end if // output directory listing else if ( name.isDirectory() ) { String directory[] = name.list(); outputArea.append( "\n\nDirectory contents:\n"); for ( int i = 0; i < directory.length; i++ ) outputArea.append( directory[ i ] + "\n" ); } } // end outer if // not file or directory, output error message else { JOptionPane.showMessageDialog( this, actionEvent.getActionCommand() + " Does Not Exist", "ERROR", JOptionPane.ERROR_MESSAGE ); } } // end method actionPerformed public static void main( String args[] ) { FileTest application = new FileTest(); application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } } // end class FileTest
Previou page | Next page |