| java.lang.Object org.geotools.data.shapefile.shp.ShapefileReader
ShapefileReader | public class ShapefileReader (Code) | | The general use of this class is:
FileChannel in = new FileInputStream("thefile.dbf").getChannel();
ShapefileReader r = new ShapefileReader( in ) while (r.hasNext()) { Geometry
shape = (Geometry) r.nextRecord().shape() // do stuff } r.close();
You don't have to immediately ask for the shape from the record. The
record will contain the bounds of the shape and will only read the shape when
the shape() method is called. This ShapefileReader.Record is the same object
every time, so if you need data from the Record, be sure to copy it.
author: jamesm author: aaime author: Ian Schneider |
Inner Class :final public class Record | |
Field Summary | |
ByteBuffer | buffer |
Method Summary | |
public void | close() Clean up any resources. | public static ByteBuffer | ensureCapacity(ByteBuffer buffer, int size, boolean useMemoryMappedBuffer) | public static int | fill(ByteBuffer buffer, ReadableByteChannel channel) | public int | getCount(int count) Parses the shpfile counting the records. | public ShapefileHeader | getHeader() Get the header. | public void | goTo(int offset) | public boolean | hasNext() If there exists another record. | public static void | main(String[] args) | public Record | nextRecord() Fetch the next record information. | public static ShapefileHeader | readHeader(ReadableByteChannel channel, boolean strict) A short cut for reading the header from the given channel.
Parameters: channel - The channel to read from. Parameters: strict - True to make the header parsing throw Exceptions if theversion or magic number are incorrect. throws: IOException - If problems arise. | public Record | recordAt(int offset) Sets the current location of the byteStream to offset and returns the
next record. | public void | setHandler(ShapeHandler handler) | public Object | shapeAt(int offset) | public boolean | supportsRandomAccess() | public int | transferTo(ShapefileWriter writer, int recordNum, double[] bounds) Transfer (by bytes) the data at the current record to the
ShapefileWriter. |
buffer | ByteBuffer buffer(Code) | | |
ShapefileReader | public ShapefileReader(ReadableByteChannel channel, boolean strict, boolean useMemoryMapped, Lock lock) throws IOException, ShapefileException(Code) | | Creates a new instance of ShapeFile.
Parameters: channel - The ReadableByteChannel this reader will use. Parameters: strict - True to make the header parsing throw Exceptions if theversion or magic number are incorrect. throws: IOException - If problems arise. throws: ShapefileException - If for some reason the file contains invalid records. |
close | public void close() throws IOException(Code) | | Clean up any resources. Closes the channel.
throws: IOException - If errors occur while closing the channel. |
ensureCapacity | public static ByteBuffer ensureCapacity(ByteBuffer buffer, int size, boolean useMemoryMappedBuffer)(Code) | | |
getCount | public int getCount(int count) throws DataSourceException(Code) | | Parses the shpfile counting the records.
the number of non-null records in the shapefile |
getHeader | public ShapefileHeader getHeader()(Code) | | Get the header. Its parsed in the constructor.
The header that is associated with this file. |
hasNext | public boolean hasNext() throws IOException(Code) | | If there exists another record. Currently checks the stream for the
presence of 8 more bytes, the length of a record. If this is true and the
record indicates the next logical record number, there exists more
records.
throws: IOException - True if has next record, false otherwise. |
nextRecord | public Record nextRecord() throws IOException(Code) | | Fetch the next record information.
throws: IOException - The record instance associated with this reader. |
readHeader | public static ShapefileHeader readHeader(ReadableByteChannel channel, boolean strict) throws IOException(Code) | | A short cut for reading the header from the given channel.
Parameters: channel - The channel to read from. Parameters: strict - True to make the header parsing throw Exceptions if theversion or magic number are incorrect. throws: IOException - If problems arise. A ShapefileHeader object. |
recordAt | public Record recordAt(int offset) throws IOException, UnsupportedOperationException(Code) | | Sets the current location of the byteStream to offset and returns the
next record. Usually used in conjuctions with the shx file or some other
index file.
Parameters: offset - If using an shx file the offset would be: 2 *(index.getOffset(i)) The record after the offset location in the bytestream throws: IOException - thrown in a read error occurs throws: UnsupportedOperationException - thrown if not a random access file |
setHandler | public void setHandler(ShapeHandler handler)(Code) | | Parameters: handler - The handler to set. |
supportsRandomAccess | public boolean supportsRandomAccess()(Code) | | |
transferTo | public int transferTo(ShapefileWriter writer, int recordNum, double[] bounds) throws IOException(Code) | | Transfer (by bytes) the data at the current record to the
ShapefileWriter.
Parameters: bounds - double array of length four for transfering the bounds into The length of the record transfered in bytes |
|
|