/**
  * Static constructor for a ByteReader object, and depending on the readFile setting,
  * it may or may not read in the binary file specified.
  *
  * This may create a FileByteReader, UrlByteReader or InputStreamByteReader, depending on the
  * the nature of the IdentificationFile passed in.
  *
  *
  * @param theIDFile   The file to be read in
  * @param readFile   Flag specifying whether file should be read in or not
  */
 public static IByteReader newByteReader(IdentificationFile theIDFile, bool readFile)         //was ByteReader
 {
     if (InputStreamByteReader.isInputStream(theIDFile.getFilePath()))
     {
         return(InputStreamByteReader.newInputStreamByteReader(theIDFile, readFile));
     }
     else if (UrlByteReader.isURL(theIDFile.getFilePath()))
     {
         return(UrlByteReader.newUrlByteReader(theIDFile, readFile));
     }
     else
     {
         return(new FileByteReader(theIDFile, readFile));
     }
 }
 /**
  * Creates a new instance of FileByteReader
  *
  * <p>This constructor uses the same file to contain the data as is specified by
  * <code>theIDFile</code>.
  * 
  * @param theIDFile the source file from which the bytes will be read.
  * @param readFile <code>true</code> if the file is to be read
  */   
 public FileByteReader(IdentificationFile theIDFile, bool readFile) : this(theIDFile, readFile, theIDFile.getFilePath())
 {        
 }
 /**
  * Creates a new instance of FileByteReader
  *
  * <p>This constructor uses the same file to contain the data as is specified by
  * <code>theIDFile</code>.
  *
  * @param theIDFile the source file from which the bytes will be read.
  * @param readFile <code>true</code> if the file is to be read
  */
 public FileByteReader(IdentificationFile theIDFile, bool readFile) : this(theIDFile, readFile, theIDFile.getFilePath())
 {
 }