Package org.geotools.dbffile
Class DbfFile
- java.lang.Object
-
- org.geotools.dbffile.DbfFile
-
public class DbfFile extends Object
This class represents a DBF (or DBase) file.Construct it with a filename (including the .dbf) this causes the header and field definitions to be read.
Later queries return rows or columns of the database.
- Author:
- Ian Turton Centre for Computaional Geography, University of Leeds, LS2 9JT, 1998.
-
-
Field Summary
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
StringBuffer
GetDbfRec(int row)
fetches the rowth row of the fileString
getFieldName(int row)
String
getFieldType(int row)
int
getFileSize()
Returns the size of the database file.Double[]
getFloatCol(int col)
Fetches a column of Double from the database file.Double[]
getFloatCol(int col, int start, int end)
Fetches a part column of Double 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.static void
main(String[] args)
protected Date
parseDate(String s)
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 objectsObject
ParseRecordColumn(StringBuffer rec, int wantedCol)
-
-
-
Field Detail
-
dFile
public EndianDataInputStream dFile
-
fielddef
public DbfFieldDef[] fielddef
-
DATE_PARSER
public static final SimpleDateFormat DATE_PARSER
-
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
-
DbfFile
protected DbfFile()
-
DbfFile
public DbfFile(String file) 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.
-
-
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.
-
getFieldName
public String getFieldName(int row)
-
getFieldType
public String getFieldType(int row)
-
getFileSize
public int getFileSize()
Returns the size of the database file.
-
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.
-
ParseRecordColumn
public Object ParseRecordColumn(StringBuffer rec, int wantedCol) throws Exception
- Throws:
Exception
-
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 Double[] getFloatCol(int col) throws DbfFileException, IOException
Fetches a column of Double from the database file.- Parameters:
int
- col - the column to fetch- Throws:
IOException
- - on read errorDbfFileException
- - column is not an Integer.
-
getFloatCol
public Double[] getFloatCol(int col, int start, int end) throws DbfFileException, IOException
Fetches a part column of Double 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.
-
close
public void close() throws IOException
- Throws:
IOException
-
parseDate
protected Date parseDate(String s) throws ParseException
- Throws:
ParseException
-
-