Package org.geotools.dbffile
Class Dbf
- java.lang.Object
-
- org.geotools.dbffile.Dbf
-
public class Dbf extends Object
This class represents a DBF (or DBase) file.Construct it with a URL or File (including the .dbf) this causes the header and field definitions to be read.
Later queries return rows or columns of the database.
If a URL is specified then the whole file is read into memory
if a file is specified then a randomAccess system is used.
- Author:
- Ian Turton Centre for
Computaional Geography, University of Leeds, LS2 9JT, 1998.
mod to getStringCol by James Macgill.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DBF_ALL_DELETED
static int
DBF_BAD_DBFID
static int
DBF_BAD_EODEFS
static int
DBF_BAD_INT_WIDTH
static int
DBF_BAD_ITYPE
static int
DBF_BAD_OFFSET
static int
DBF_BAD_SIZEOF
static int
DBF_BUFFSIZE
static int
DBF_CANNOT_DO_MEMO
static int
DBF_CENTURY
static int
DBF_END_OF_DEFS
static int
DBF_FLOATING_N
static int
DBF_GET_DATE
static int
DBF_INT_EXP
static int
DBF_INT_JUNK
static int
DBF_INT_REAL
static int
DBF_MALLOC
static int
DBF_MALLOC_FIELD
static int
DBF_MAXFIELDS
static int
DBF_MAXLEN
static int
DBF_NAMELEN
static int
DBF_NO_FIELDS
static int
DBF_OK
static int
DBF_READ_DATA
static int
DBF_READ_DEFS
static int
DBF_READ_HEAD
static int
DBF_REC_DELETED
static int
DBF_REC_TOO_LONG
static int
DBF_TOO_MANY_FIELDS
static int
DBF_TOO_WIDE_FOR_INF
static int
DBF_UNPRINT_DATA
static int
DBF_WRITE_DATA
static int
DBF_WRITE_DEFS
static int
DBF_WRITE_HEAD
static int
DBF3_MAXFIELDS
static int
DBF4_MAXFIELDS
DbfFieldDef[]
fielddef
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringBuffer
GetDbfRec(int row)
fetches the rowth row of the fileStringBuffer
getFieldName(int col)
int
getFieldNumber(String name)
looks up the field number for the given named columnchar
getFieldType(int col)
int
getFileSize()
Returns the size of the database file.Float[]
getFloatCol(int col)
Fetches a column of Floats from the database file.Float[]
getFloatCol(int col, int start, int end)
Fetches a part column of Floats from the database file.Integer[]
getIntegerCol(int col)
Fetches a column of Integers from the database file.Integer[]
getIntegerCol(int col, int start, int end)
Fetches a part column of Integers from the database file.int
getLastRec()
Returns the number of records in the database file.String
getLastUpdate()
Returns the date of the last update of the file as a string.StringBuffer
GetNextDbfRec()
gets the next record and returns it as a string.int
getNumFields()
Returns the number of fields in the records in the database file.int
getRecSize()
Returns the size of the records in the database file.String[]
getStringCol(int col)
Fetches a column of Strings from the database file.String[]
getStringCol(int col, int start, int end)
Fetches a part column of Strings from the database file.Vector
ParseDbfRecord(int row)
fetches the rowth row of the file and parses it into an vector of objects.Vector
ParseRecord(StringBuffer rec)
Parses the record stored in the StringBuffer rec into a vector of objects
-
-
-
Field Detail
-
fielddef
public DbfFieldDef[] fielddef
-
DBF_CENTURY
public static final int DBF_CENTURY
- See Also:
- Constant Field Values
-
DBF_MAXLEN
public static final int DBF_MAXLEN
- See Also:
- Constant Field Values
-
DBF_NAMELEN
public static final int DBF_NAMELEN
- See Also:
- Constant Field Values
-
DBF3_MAXFIELDS
public static final int DBF3_MAXFIELDS
- See Also:
- Constant Field Values
-
DBF4_MAXFIELDS
public static final int DBF4_MAXFIELDS
- See Also:
- Constant Field Values
-
DBF_MAXFIELDS
public static final int DBF_MAXFIELDS
- See Also:
- Constant Field Values
-
DBF_BUFFSIZE
public static final int DBF_BUFFSIZE
- See Also:
- Constant Field Values
-
DBF_END_OF_DEFS
public static final int DBF_END_OF_DEFS
- See Also:
- Constant Field Values
-
DBF_OK
public static final int DBF_OK
- See Also:
- Constant Field Values
-
DBF_READ_HEAD
public static final int DBF_READ_HEAD
- See Also:
- Constant Field Values
-
DBF_BAD_DBFID
public static final int DBF_BAD_DBFID
- See Also:
- Constant Field Values
-
DBF_WRITE_HEAD
public static final int DBF_WRITE_HEAD
- See Also:
- Constant Field Values
-
DBF_READ_DEFS
public static final int DBF_READ_DEFS
- See Also:
- Constant Field Values
-
DBF_TOO_MANY_FIELDS
public static final int DBF_TOO_MANY_FIELDS
- See Also:
- Constant Field Values
-
DBF_NO_FIELDS
public static final int DBF_NO_FIELDS
- See Also:
- Constant Field Values
-
DBF_BAD_EODEFS
public static final int DBF_BAD_EODEFS
- See Also:
- Constant Field Values
-
DBF_WRITE_DEFS
public static final int DBF_WRITE_DEFS
- See Also:
- Constant Field Values
-
DBF_BAD_ITYPE
public static final int DBF_BAD_ITYPE
- See Also:
- Constant Field Values
-
DBF_CANNOT_DO_MEMO
public static final int DBF_CANNOT_DO_MEMO
- See Also:
- Constant Field Values
-
DBF_BAD_INT_WIDTH
public static final int DBF_BAD_INT_WIDTH
- See Also:
- Constant Field Values
-
DBF_BAD_OFFSET
public static final int DBF_BAD_OFFSET
- See Also:
- Constant Field Values
-
DBF_FLOATING_N
public static final int DBF_FLOATING_N
- See Also:
- Constant Field Values
-
DBF_READ_DATA
public static final int DBF_READ_DATA
- See Also:
- Constant Field Values
-
DBF_UNPRINT_DATA
public static final int DBF_UNPRINT_DATA
- See Also:
- Constant Field Values
-
DBF_WRITE_DATA
public static final int DBF_WRITE_DATA
- See Also:
- Constant Field Values
-
DBF_INT_EXP
public static final int DBF_INT_EXP
- See Also:
- Constant Field Values
-
DBF_INT_REAL
public static final int DBF_INT_REAL
- See Also:
- Constant Field Values
-
DBF_INT_JUNK
public static final int DBF_INT_JUNK
- See Also:
- Constant Field Values
-
DBF_REC_DELETED
public static final int DBF_REC_DELETED
- See Also:
- Constant Field Values
-
DBF_ALL_DELETED
public static final int DBF_ALL_DELETED
- See Also:
- Constant Field Values
-
DBF_BAD_SIZEOF
public static final int DBF_BAD_SIZEOF
- See Also:
- Constant Field Values
-
DBF_REC_TOO_LONG
public static final int DBF_REC_TOO_LONG
- See Also:
- Constant Field Values
-
DBF_TOO_WIDE_FOR_INF
public static final int DBF_TOO_WIDE_FOR_INF
- See Also:
- Constant Field Values
-
DBF_MALLOC_FIELD
public static final int DBF_MALLOC_FIELD
- See Also:
- Constant Field Values
-
DBF_MALLOC
public static final int DBF_MALLOC
- See Also:
- Constant Field Values
-
DBF_GET_DATE
public static final int DBF_GET_DATE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Dbf
public Dbf(URL url) throws IOException, DbfFileException
Constructor, opens the file and reads the header infomation.- Parameters:
file
- The file to be opened, includes path and .dbf- Throws:
IOException
- If the file can't be opened.DbfFileException
- If there is an error reading header.
-
Dbf
public Dbf(InputStream in) throws IOException, DbfFileException
- Throws:
IOException
DbfFileException
-
Dbf
public Dbf(String name) throws IOException, DbfFileException
- Throws:
IOException
DbfFileException
-
Dbf
public Dbf(File file) throws IOException, DbfFileException
- Throws:
IOException
DbfFileException
-
-
Method Detail
-
getLastUpdate
public String getLastUpdate()
Returns the date of the last update of the file as a string.
-
getLastRec
public int getLastRec()
Returns the number of records in the database file.
-
getRecSize
public int getRecSize()
Returns the size of the records in the database file.
-
getNumFields
public int getNumFields()
Returns the number of fields in the records in the database file.
-
getFieldNumber
public int getFieldNumber(String name)
looks up the field number for the given named column- Parameters:
name
- A String for the name to look up- Returns:
- int The col number for the field, -1 if field could not be found
-
getFileSize
public int getFileSize()
Returns the size of the database file.
-
getFieldName
public StringBuffer getFieldName(int col)
-
getFieldType
public char getFieldType(int col)
-
GetNextDbfRec
public StringBuffer GetNextDbfRec() throws IOException
gets the next record and returns it as a string. This method works on a sequential stream and can not go backwards. Only useful if you want to read the whole file in one.- Throws:
IOException
- on read error.
-
GetDbfRec
public StringBuffer GetDbfRec(int row) throws IOException
fetches the rowth row of the file- Parameters:
row
- - the row to fetch- Throws:
IOException
- on read error.
-
ParseDbfRecord
public Vector ParseDbfRecord(int row) throws IOException
fetches the rowth row of the file and parses it into an vector of objects.- Parameters:
row
- - the row to fetch- Throws:
IOException
- on read error.
-
ParseRecord
public Vector ParseRecord(StringBuffer rec)
Parses the record stored in the StringBuffer rec into a vector of objects- Parameters:
StringBuffer
- rec - the record to be parsed.
-
getIntegerCol
public Integer[] getIntegerCol(int col) throws IOException, DbfFileException
Fetches a column of Integers from the database file.- Parameters:
int
- col - the column to fetch- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getIntegerCol
public Integer[] getIntegerCol(int col, int start, int end) throws IOException, DbfFileException
Fetches a part column of Integers from the database file.- Parameters:
int
- col - the column to fetchint
- start - the row to start fetching fromint
- end - the row to stop fetching at.- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getFloatCol
public Float[] getFloatCol(int col) throws DbfFileException, IOException
Fetches a column of Floats from the database file.- Parameters:
int
- col - the column to fetch- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getFloatCol
public Float[] getFloatCol(int col, int start, int end) throws DbfFileException, IOException
Fetches a part column of Floats from the database file.- Parameters:
int
- col - the column to fetchint
- start - the row to start fetching fromint
- end - the row to stop fetching at.- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getStringCol
public String[] getStringCol(int col) throws DbfFileException, IOException
Fetches a column of Strings from the database file.- Parameters:
int
- col - the column to fetch- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getStringCol
public String[] getStringCol(int col, int start, int end) throws DbfFileException, IOException
Fetches a part column of Strings from the database file.- Parameters:
int
- col - the column to fetchint
- start - the row to start fetching fromint
- end - the row to stop fetching at.- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
-