org.geotools.data.shapefile.dbf
Class IndexedDbaseFileReader

Object
  extended by DbaseFileReader
      extended by IndexedDbaseFileReader
All Implemented Interfaces:
FileReader

public class IndexedDbaseFileReader
extends DbaseFileReader

A DbaseFileReader is used to read a dbase III format file.
The general use of this class is:

 FileChannel in = new FileInputStream("thefile.dbf").getChannel();
 DbaseFileReader r = new DbaseFileReader( in )
 Object[] fields = new Object[r.getHeader().getNumFields()];
 while (r.hasNext()) {
    r.readEntry(fields);
    // do stuff
 }
 r.close();
 
For consumers who wish to be a bit more selective with their reading of rows, the Row object has been added. The semantics are the same as using the readEntry method, but remember that the Row object is always the same. The values are parsed as they are read, so it pays to copy them out (as each call to Row.read() will result in an expensive String parse).
EACH CALL TO readEntry OR readRow ADVANCES THE FILE!
An example of using the Row method of reading:
 FileChannel in = new FileInputStream("thefile.dbf").getChannel();
 DbaseFileReader r = new DbaseFileReader( in )
 int fields = r.getHeader().getNumFields();
 while (r.hasNext()) {
   DbaseFileReader.Row row = r.readRow();
   for (int i = 0; i < fields; i++) {
     // do stuff
     Foo.bar( row.read(i) );
   }
 }
 r.close();
 

Author:
Ian Schneider, Tommaso Nolli

Nested Class Summary
 
Nested classes/interfaces inherited from class DbaseFileReader
DbaseFileReader.Row
 
Field Summary
 
Fields inherited from class DbaseFileReader
currentOffset, randomAccessEnabled, useMemoryMappedBuffer
 
Constructor Summary
IndexedDbaseFileReader(ShpFiles shpFiles)
          Like calling DbaseFileReader(ReadableByteChannel, true);
IndexedDbaseFileReader(ShpFiles shpFiles, boolean useMemoryMappedBuffer)
          Creates a new instance of DBaseFileReader
IndexedDbaseFileReader(ShpFiles shpFiles, boolean useMemoryMappedBuffer, Charset stringCharset)
           
IndexedDbaseFileReader(ShpFiles shpFiles, boolean useMemoryMappedBuffer, Charset stringCharset, TimeZone timeZone)
           
 
Method Summary
 void goTo(int recno)
           
 boolean IsRandomAccessEnabled()
           
static void main(String[] args)
           
 
Methods inherited from class DbaseFileReader
close, fill, getHeader, hasNext, id, read, readEntry, readEntry, readEntry, readField, readRow, skip, transferTo
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IndexedDbaseFileReader

public IndexedDbaseFileReader(ShpFiles shpFiles)
                       throws IOException
Like calling DbaseFileReader(ReadableByteChannel, true);

Parameters:
channel -
Throws:
IOException

IndexedDbaseFileReader

public IndexedDbaseFileReader(ShpFiles shpFiles,
                              boolean useMemoryMappedBuffer)
                       throws IOException
Creates a new instance of DBaseFileReader

Parameters:
channel - The readable channel to use.
useMemoryMappedBuffer - Wether or not map the file in memory
Throws:
IOException - If an error occurs while initializing.

IndexedDbaseFileReader

public IndexedDbaseFileReader(ShpFiles shpFiles,
                              boolean useMemoryMappedBuffer,
                              Charset stringCharset)
                       throws IOException
Throws:
IOException

IndexedDbaseFileReader

public IndexedDbaseFileReader(ShpFiles shpFiles,
                              boolean useMemoryMappedBuffer,
                              Charset stringCharset,
                              TimeZone timeZone)
                       throws IOException
Throws:
IOException
Method Detail

goTo

public void goTo(int recno)
          throws IOException,
                 UnsupportedOperationException
Throws:
IOException
UnsupportedOperationException

IsRandomAccessEnabled

public boolean IsRandomAccessEnabled()

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception


Copyright © 1996-2014 Geotools. All Rights Reserved.