Class IndexedDbaseFileReader

  • All Implemented Interfaces:
    Closeable, AutoCloseable, 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
    • Constructor Detail

      • IndexedDbaseFileReader

        public IndexedDbaseFileReader​(ShpFiles shpFiles)
                               throws IOException
        Like calling DbaseFileReader(ReadableByteChannel, true);
        Throws:
        IOException
      • IndexedDbaseFileReader

        public IndexedDbaseFileReader​(ShpFiles shpFiles,
                                      boolean useMemoryMappedBuffer)
                               throws IOException
        Creates a new instance of DBaseFileReader
        Parameters:
        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