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;
	}

猜你喜欢

转载自blog.csdn.net/Funky_oaNiu/article/details/117334951