ucar.netcdf
Class NetcdfFile

java.lang.Object
  extended by ucar.netcdf.AbstractNetcdf
      extended by ucar.netcdf.NetcdfFile
All Implemented Interfaces:
Netcdf

public class NetcdfFile
extends AbstractNetcdf

A concrete implementation of the Netcdf interface, this class provides connection to NetCDF version 1 files.

Constructors for creating new files and opening existing ones.

See Also:
Netcdf

Constructor Summary
NetcdfFile(java.io.File file, boolean readonly)
          Open existing netcdf version 1 file.
NetcdfFile(java.io.File file, boolean clobber, boolean fill, Schema template)
          Create a new netcdf version 1 file from a Schema template.
NetcdfFile(java.lang.String path, boolean ro)
          Open existing netcdf version 1 file.
NetcdfFile(java.lang.String path, boolean clobber, boolean fill, Schema template)
          Create a new netcdf version 1 file from a Schema template.
NetcdfFile(java.net.URL url)
          Open existing, read-only netcdf file through a URL.
 
Method Summary
 void close()
          Close this netcdf file.
protected  void finalize()
          Ensures that the close method of this file is called when there are no more references to it.
 void flush()
          Flush anything written to disk.
 java.io.File getFile()
          Useful for identifying this instance among others.
 boolean getFill()
          Get the current "fill mode".
 java.lang.String getName()
          Useful for identifying this instance among others.
protected  Accessor ioFactory(ProtoVariable proto)
          Used when creating variables to populate this.
 void setFill(boolean pleaseFill)
          Sets the "fill mode" to the argument.
 void toCdl(java.lang.StringBuffer buf)
          Format as CDL.
 UnlimitedDimension unlimitedDimension()
          Deprecated.  
 
Methods inherited from class ucar.netcdf.AbstractNetcdf
add, contains, contains, get, getAttribute, getAttributes, getDimensions, initHashtable, iterator, putAttribute, putDimension, size, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NetcdfFile

public NetcdfFile(java.io.File file,
                  boolean clobber,
                  boolean fill,
                  Schema template)
           throws java.io.IOException
Create a new netcdf version 1 file from a Schema template.

Parameters:
file - the file name as File object
clobber - if true, overwrite existing
fill - if false, suppress variable pre fill
template - the Schema used as construction template. May be empty, shouldn't be null.
Throws:
java.io.IOException
See Also:
setFill(boolean), Netcdf

NetcdfFile

public NetcdfFile(java.lang.String path,
                  boolean clobber,
                  boolean fill,
                  Schema template)
           throws java.io.IOException
Create a new netcdf version 1 file from a Schema template.

Parameters:
path - the file name as a String
clobber - if true, overwrite existing
fill - if false, suppress variable pre fill
template - the Schema used as construction template. May be empty, shouldn't be null.
Throws:
java.io.IOException
See Also:
setFill(boolean), Netcdf

NetcdfFile

public NetcdfFile(java.io.File file,
                  boolean readonly)
           throws java.io.IOException
Open existing netcdf version 1 file.

Parameters:
file - the file name as File object
readonly - if true, open read only, else open for read and write.
Throws:
java.io.IOException

NetcdfFile

public NetcdfFile(java.lang.String path,
                  boolean ro)
           throws java.io.IOException
Open existing netcdf version 1 file.

Parameters:
path - the file name as a String
readonly - if true, open read only, else open for read and write.
Throws:
java.io.IOException

NetcdfFile

public NetcdfFile(java.net.URL url)
           throws java.io.FileNotFoundException,
                  java.io.IOException
Open existing, read-only netcdf file through a URL. This may use either the file: or http: protocol. If it uses the file protocol, it will be opened as a read-only file using url.getFile(). If it uses the http protocol, it will be read over http using HTTPRandomAccessFile. The query component of the URL is ignored

Modified from ncBrowse (Donald Denbo).

Parameters:
url - the URL of the netCDF dataset.
Throws:
java.io.FileNotFoundException - if the URL specifies a file that doesn't exist.
java.io.IOException - if an I/O failure occurs.
Method Detail

close

public void close()
           throws java.io.IOException
Close this netcdf file. The inquiry interface calls will continue to be available, but I/O accesses will fail after this call.

Throws:
java.io.IOException
See Also:
RandomAccessFile.close()

flush

public void flush()
           throws java.io.IOException
Flush anything written to disk.

Throws:
java.io.IOException
See Also:
RandomAccessFile.flush()

getFile

public final java.io.File getFile()
Useful for identifying this instance among others.

Returns:
File object this was opened or created as.

getName

public final java.lang.String getName()
Useful for identifying this instance among others.

Returns:
File object this was opened or created as.

setFill

public void setFill(boolean pleaseFill)
Sets the "fill mode" to the argument. If true (the default), new storage is prefilled with the appropriate fill value. Otherwise, this activity is suppressed and the programmer should initialize all values.

Parameters:
pleaseFill - true to fill.
See Also:
getFill()

getFill

public final boolean getFill()
Get the current "fill mode".

Returns:
true iff we are prefilling new storage with the appropriate fill value.
See Also:
setFill(boolean)

unlimitedDimension

public final UnlimitedDimension unlimitedDimension()
Deprecated. 

If this has an unlimited Dimension, return it, otherwise null. Note that this specific to NetcdfFile, not part of the Netcdf interface. Other implementations may support multiple unlimited dimensions.

Returns:
UnlimitedDimension the unlimited dimension

toCdl

public void toCdl(java.lang.StringBuffer buf)
Format as CDL.

Overrides:
toCdl in class AbstractNetcdf
Parameters:
buf - StringBuffer into which to write

ioFactory

protected Accessor ioFactory(ProtoVariable proto)
Description copied from class: AbstractNetcdf
Used when creating variables to populate this. Override in your implementation to provide the correct i/o functionality.

Specified by:
ioFactory in class AbstractNetcdf

finalize

protected void finalize()
                 throws java.lang.Throwable
Ensures that the close method of this file is called when there are no more references to it.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable - The lack of covariance for exception specifications dictates the specificed type; it can actually only be IOException thrown by RandomAccessFile.close.
See Also:
close()