home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / doc / native / demo / file.java next >
Text File  |  1995-05-19  |  2KB  |  89 lines

  1. /*
  2.  * Copyright (c) 1994, 1995 by Sun Microsystems, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * @(#)File.java 95/02/01 1.4
  6.  *
  7.  * December 1994, Eugene Kuerner
  8.  *
  9.  *
  10.  * This file defines the superclass for the classes used in the native
  11.  * library example.  The File class defined here is loosely based on
  12.  * the File classes provided as part of the Java base io classes.
  13.  * This File superclass provides basic file and path manipulation with
  14.  * the expectation that subclasses will provide the actual file
  15.  * management code depending on the file semantics they want to present.
  16.  * For example, read only input files and read and write output files.
  17.  *
  18.  * version     1.0, 01 Dec 1994
  19.  * author    Eugene Kuerner
  20.  *
  21.  */
  22.  
  23.  
  24. /*
  25.  * I wanted to create a package (refer to the Java language
  26.  * specification for more information on packages) for all of the classes
  27.  * used in this example.  Using the package statment in all of the
  28.  * related classes, we can force all of these classes to be associated
  29.  * together.
  30.  *
  31.  */
  32. package demo;
  33.  
  34.  
  35. /**
  36.  * The File superclass defines an interface for manipulating path
  37.  * and file names.  
  38.  *
  39.  */
  40. public
  41. class File {
  42.  
  43.     /**
  44.      * The file path.  We want to use an abstract path separator
  45.      * in Java that is converted to the system dependent path
  46.      * separator.
  47.      *
  48.      */
  49.     protected String path;
  50.  
  51.     /**
  52.      * The class File's notion of a path separator character.  This
  53.      * will be the Java path separator.  Note that this will be
  54.      * converted to the system dependent path separator at runtime
  55.      * by code in the native library.
  56.      *
  57.      */
  58.     public static final char separatorChar = ':';
  59.  
  60.     /**
  61.      * The constructor, initializes the class with the given path.  Note
  62.      * that we use the String class found in the Java core classes.
  63.      *
  64.      */
  65.     public File(String path) {
  66.     if (path == null) {
  67.         throw new NullPointerException();
  68.     }
  69.     this.path = path;
  70.     }    
  71.  
  72.     /**
  73.      * Get the name of the file, not including the directory path.
  74.      *
  75.      */
  76.     public String getFileName() {
  77.     int index = path.lastIndexOf(separatorChar);
  78.     return (index < 0) ? path : path.substring(index + 1);
  79.     }
  80.  
  81.     /**
  82.      * Get the name of the file including the full directory path.
  83.      *
  84.      */
  85.     public String getPath() {
  86.     return path;
  87.     }
  88. }
  89.