日期:2014-05-16 浏览次数:20517 次
前段时间项目中用到了读取DBF文件,原本以为DBF文件可以用excel打开,所以想当然的用JXL解析excel的方法读取DBF文件,在解析过程中果然报了异常。于是从网上查了下、有专门的读取DBF的工具,我用的是javadbf.jar。具体的java操作DBF文件代码如下:public static void readDBF(String path)
{
InputStream fis = null;
try
{
//读取文件的输入流
fis = new FileInputStream(path);
//根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
DBFReader reader = new DBFReader(fis);
//设置编码方式,防止中文乱码
reader.setCharactersetName("GB2312");
//调用DBFReader对实例方法得到path文件中字段的个数
int fieldsCount = reader.getFieldCount();
for( int i=0; i<fieldsCount; i++)
{
DBFField field = reader.getField(i);
System.out.println(field.getName());
fieldList.add(field.getName());
}
Object[] rowValues;
//一条条取出path文件中记录
while((rowValues = reader.nextRecord()) != null)
{
for( int i=0; i<rowValues.length; i++)
{
String currentCol = rowValues[i].toString().trim();
//因为dbf文件中yyyy-MM-dd格式读取出来的日期格式为:Wed Sep 07 21:54:58 CST 2011 SimpleDateFormat sdfTemp = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US); Date date1 = sdfTemp.parse(currentCol); DateFormat df = new SimpleDateFormat("yyyyMMdd"); currentCol = df.format(date1); } } } catch(Exception e) { e.printStackTrace(); } finally { try{ fis.close(); }catch(Exception e){} } }?