`

java 解析DBF文件

 
阅读更多

java代码

01 /**
02      * 解析DBF文件
03      * @param in
04      * @return List<Map<String,String>> columns通过AMF编码之后的字符串
05      * @throws Exception
06      */
07     public static String parseDbf2Map(InputStream in)throws Exception {
08   
09         DBFReader dbfreader = new DBFReader(in);
10         dbfreader.setCharactersetName("GB2312");
11   
12         List<Map<String,String>> columns = new ArrayList<Map<String,String>>();
13         Map<String,String> head = new HashMap<String,String>();
14         //解析DBF表头的信息
15         Map dataType = new HashedMap();
16         for(int i = 0; i < dbfreader.getFieldCount(); i++) {
17             DBFField field = dbfreader.getField(i);
18             byte type = field.getDataType();
19             int decimal = 0;
20             int length = 0;
21             String formatString = "";
22             if(DBFField.FIELD_TYPE_N == type || DBFField.FIELD_TYPE_F == type){
23                  decimal = field.getDecimalCount();
24                  length = field.getFieldLength();
25                  for (int j = 0; j < (length - decimal); j++) {
26                      formatString +="#";
27                  }
28                  if(decimal != 0){
29                      formatString = formatString + "0.";
30                  }
31                  for (int jj = 0; jj < decimal; jj++) {
32                      formatString +="0";
33                 }
34                  dataType.put(""+i, formatString);
35             }
36             if(DBFField.FIELD_TYPE_D == type){
37                 formatString = "yyyy/MM/dd";
38                 dataType.put(""+i, formatString);
39             }
40   
41             String name = field.getName();
42   
43             head.put(""+i, name);
44         }
45         columns.add(head);
46         Object[] rowObj = null;
47         int k = 1;
48         while ((rowObj = dbfreader.nextRecord()) != null) {
49             Map<String,String> data = new HashMap<String,String>();
50             for (int i = 0; i < rowObj.length; i++) {
51                 Object temp = rowObj[i];
52                 String dataTypeFormat = (String)dataType.get(""+i);
53                 if(dataTypeFormat != null){
54                     if(dataTypeFormat.indexOf("yyyy") !=-1){
55                         SimpleDateFormat format = new SimpleDateFormat(dataTypeFormat);
56                         temp = format.format((Date)temp);
57                     }else {
58                         DecimalFormat format = new DecimalFormat(dataTypeFormat);
59                         temp = format.format(temp);
60                     }
61                 }
62                 data.put(dbfreader.getField(i).getName(), temp.toString());
63             }
64             columns.add(data);
65             k++;
66         }
67   
68         //编码:
69         AmfSerializer amfSerializer = new AmfSerializer();
70         String str = amfSerializer.toAmf(columns);
71         return str;
72
分享到:
评论

相关推荐

    java解析dbf文件方案.pdf

    Java 解析 DBF 文件方案 Java 解析 DBF 文件方案是使用 Java 语言来读取和解析 DBF 文件的方法。DBF 文件是一种常见的数据库文件格式,广泛应用于许多行业。为了读取和解析 DBF 文件,需要使用 Java 语言中的数据库...

    java解析dbf文件三种方法、以及解析驱动

    ### Java解析DBF文件的方法与解析驱动介绍 #### DBF文件简介 DBF(dBase File)是一种常用的数据文件格式,最初由dBase数据库应用程序创建并使用。它以表格形式存储数据,支持多种不同的数据库管理系统(DBMS)。...

    Java解析DBF文件

    Java解析某些DBF文件时喜欢出错误,错误一:Failed to parse Number: For input string: "-.---" , 错误二:有时候有些被标记为删除的数据读取不出来,已打成jar包

    Java读取DBF文件jar包和测试用例

    标题"Java读取DBF文件jar包和测试用例"表明我们要讨论的是一个Java库,它专门用于读取DBF文件,并且已经包含了测试代码来验证其功能。这个jar包名为"javadbf-0.4.0.jar",这可能是一个第三方库,它提供了Java API来...

    java 实现DBF文件读取与创建

    在Java中处理DBF文件,我们可以借助特定的库,如JDBF,它提供了读取和写入DBF文件的功能。本篇文章将深入探讨如何使用Java实现DBF文件的读取与创建。 1. **DBF文件格式介绍** DBF文件格式源于dBase,是早期个人...

    java解析dbf之通过javadbf包生成和读取dbf文件

    本文将详细介绍如何使用javadbf库来读取和生成DBF文件。 javadbf是Java的一个第三方库,它提供了一个方便的API来操作DBF文件。这个库允许我们创建、读取和修改DBF文件,从而在Java应用程序中集成对这种格式的支持。...

    java操作dbf文件

    Java操作DBF文件是数据库处理中的一个特殊场景,DBF是一种常见的数据库文件格式,常见于FoxPro、dBase等早期数据库管理系统中。在Java中处理DBF文件,主要是为了兼容这些旧系统的数据或者进行特定的数据交换。下面...

    用JAVA解析.dbf文件

    文中提到的`用JAVA解析DBF.txt`文件可能是测试代码的说明或示例,它可以帮助理解如何在具体项目中使用这段代码。 总结来说,解析`.dbf`文件需要理解其结构,并通过编程实现读取和解析操作。Java虽然没有内置支持,...

    JAVA 读取dbf文件

    Apache Commons项目中的DBF库提供了一套工具类,可以解析DBF文件并将其转换为Java对象。通过`DbfReader`类,可以打开DBF文件,获取字段信息,并迭代记录进行处理。 5. **代码示例**: 使用JDBF库读取DBF文件的...

    java解析DBF源码,修改之后的

    Java解析某些DBF文件时喜欢出错误,错误一:Failed to parse Number: For input string: "-.---" , 错误二:有时候有些被标记为删除的数据读取不出来,这两处我都有修复

    用JavaDBF操作(读、写)DBF文件

    JavaDBF库正是利用这些信息来解析和创建DBF文件。 在使用JavaDBF进行读操作时,你需要先创建一个DBFReader对象,传入DBF文件的路径。通过这个对象,你可以获取表的字段信息,遍历并读取所有记录。例如: ```java ...

    java代码DBF转Text

    描述中的"包括javadbf.jar包"提示我们,这个转换过程可能需要用到一个名为`javadbf.jar`的第三方库,它提供了解析DBF文件的能力。 `javadbf.jar`是一个Java库,专门用于读取和操作DBF文件。在Java中,由于标准库并...

    java解析上传的shp文件,包含jar,方法,shp文件

    在Java编程环境中,解析Shapefile(.shp)文件是一项常见的任务,特别是在地理信息系统(GIS)应用中。Shapefile是一种广泛用于存储地理空间数据的开放格式。为了在Java中处理这些文件,我们可以利用开源库GeoTools...

    shp文件解析java实现

    本篇文章将详细讲解如何使用`meteoInfo`和`geotools`这两个Java库来解析`shp`文件,提取其中的数据,并获取边界线数据、中心点坐标以及最大和最小经纬度值。 `meteoInfo`是一个专门处理气象数据的Java库,虽然它的...

    使用caigen解析DBF文件

    本文将详细介绍如何使用`caigen`来解析DBF文件,并探讨相关知识点。 首先,让我们理解DBF文件。DBF(dBase File)是基于表格的数据存储格式,包含列名、数据类型、记录等信息。每个DBF文件都有一个对应的.CDX索引...

    Java下读写DBF数据库文件格式研究.pdf

    考虑到DBF文件的结构和读写方法,Java开发者可设计几个专门的类来处理DBF文件。DBFField类负责读取字段子记录中的信息;DBFHeader类用于处理表头信息,并通过DBFField数组读取所有列信息;DBFReader和DBFWriter类...

    java dbf reader

    Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决。 代码解决的问题标题都已经表示清楚了,使用的时候直接解压缩,然后把里面的内容拷贝到src目录下...

    javadbf源码

    JavaDBF,全称为Java处理DBF文件的库,是一种用于在Java应用程序中读取和写入DBF(dBASE格式)文件的工具。DBF文件是早期数据库系统如dBASE、FoxPro等使用的数据文件格式,包含表格数据和元数据。JavaDBF库为开发者...

    java读取shp文件代码

    本文将基于提供的代码片段,详细介绍如何使用Java语言来读取Shapefile文件中的几何信息以及DBF文件中的属性数据。 #### Java读取Shapefile文件的基础知识 1. **Shapefile的基本结构**: - **.shp文件**:包含几何...

    Java读取DBF文件jar包以及测试用例

    测试用例`JavaDBFReaderTest.java`通常会演示如何使用`javadbf-0.4.0.jar`库来读取和解析DBF文件。以下是一个可能的测试用例结构: ```java import org.junit.Test; import static org.junit.Assert.*; public ...

Global site tag (gtag.js) - Google Analytics