Java程序读取DBF

注意:
需要引入jar包:javadbf-1.12.0.jar

//导入DBF的功能20210527
import java.io.FileInputStream;
import java.io.InputStream;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFReader;
	public void 方法名(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws IOException {
		response.setContentType("application/json;charset=gb2312");
		PrintWriter out = null;
		JSONObject jsonObject = new JSONObject();
		out = response.getWriter();
		boolean isTrue=true;
		String errMsg="";
		InputStream fis = null;
        try {
        	String path = request.getParameter("path");//读取到的DBF路径,注意,路径里只能是/不能是\
            // 读取文件的输入流
            fis = new FileInputStream(path);
            // 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
            DBFReader reader = new DBFReader(fis);
            // 调用DBFReader对实例方法得到path文件中字段的个数
            int fieldsCount = reader.getFieldCount();
            // 取出字段信息
            String bt = "";//表头
            for (int i = 0; i < fieldsCount; i++) {
                DBFField field = reader.getField(i);
                bt+=field.getName()+",";
            }
            //xm,sfzh,tzxl,cjimg,
            if(!bt.equals("XM,SFZH,TZXL,CJIMG,")){//dbf必须按固定的顺序
            	isTrue=false;
            	jsonObject.put("isTrue",isTrue);
            	jsonObject.put("msg","DBF顺序必须符合要求:xm,sfzh,tzxl,cjimg");
        		out.print(jsonObject.toString());
        		out.flush();
        		out.close();
        		return;
            }
            Object[] rowValues;
            // 一条条取出path文件中记录
            while ((rowValues = reader.nextRecord()) != null) {
            	HashMap map = new HashMap();
                for (int i = 0; i < rowValues.length; i++) {
                	map.put(i+"", rowValues[i]);
                }
                YhxxbDAO.insertRlDbfImp(map);//操作数据库
            }
        } catch (Exception e) {
        	isTrue=false;
        	e.printStackTrace();
        } finally {
            try {
                fis.close();//关流!!
            } catch (Exception e) {
            }
        }
		
		jsonObject.put("isTrue",isTrue);
		jsonObject.put("msg","导入成功!");
		out.print(jsonObject.toString());
		out.flush();
		out.close();
		return;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值