private static FileInputStream openInputStream(File file) throws IOException {
        if (file.exists()) {
            if (file.isDirectory()) {
                throw new IOException("File '" + file + "' exists but is a directory");
            }
            if (file.canRead() == false) {
                throw new IOException("File '" + file + "' cannot be read");
            }
        } else {
            throw new FileNotFoundException("File '" + file + "' does not exist");
        }
        return new FileInputStream(file);
    }
private static FileInputStream openInputStream ( File file ) throws IOException { if ( file . exists ( ) ) { if ( file . isDirectory ( ) ) { throw new IOException ( "File '" + file + "' exists but is a directory" ) ; } if ( file . canRead ( ) == false ) { throw new IOException ( "File '" + file + "' cannot be read" ) ; } } else { throw new FileNotFoundException ( "File '" + file + "' does not exist" ) ; } return new FileInputStream ( file ) ; }
Opens a {@link java.io.FileInputStream} for the specified file, providing better
error messages than simply calling <code>new FileInputStream(file)</code>.
<p>
At the end of the method either the stream will be successfully opened,
or an exception will have been thrown.
<p>
An exception is thrown if the file does not exist.
An exception is thrown if the file object exists but is a directory.
An exception is thrown if the file exists but cannot be read.

@param file the file to open for input, must not be {@code null}
@return a new {@link java.io.FileInputStream} for the specified file
@throws java.io.FileNotFoundException if the file does not exist
@throws IOException                   if the file object is a directory
@throws IOException                   if the file cannot be read
@since 1.3