DBF文件解析DEMO

简介: DBF文件解析DEMO


package com.example.democrud.democurd.sqldemo;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFReader;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.MultiValueMap;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.util.WebUtils;
import org.thymeleaf.util.MapUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.math.BigDecimal;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.*;
public class demo6 {
    public static void main(String[] arg) {
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(new byte[1024]);
        ByteArrayInputStream byteArrayInputStream2 = new ByteArrayInputStream("1111".getBytes(Charset.forName("UTF-8")));
        //Statement state = con.createStatement();
        String path = "E:\\桌面\\article.dbf";
        InputStream fis = null;
        String sresult = "";
        try {
// 读取文件的输入流
            fis = new FileInputStream(path);
// 根据输入流初始化一个DBFReader实例,用来读取DBF文件信息
            DBFReader reader = new DBFReader(fis);
// 调用DBFReader对实例方法得到path文件中字段的个数
            int fieldsCount = reader.getFieldCount();
// 取出字段信息
            for (int i = 0; i < fieldsCount; i++) {
                DBFField field = reader.getField(i);
                System.out.println("标题行的值==>" + field.getName());
            }
            System.out.println("--------------------");
            Object[] rowValues;
// 一条条取出path文件中记录
            List<Map> leee = new ArrayList<>();
            List<List<Object>> leees = new ArrayList<>();
            List<Object> list1=new ArrayList<>();
            while ((rowValues = reader.nextRecord()) != null) {
                Map<String, Object> map = new HashMap<>();
                //   System.out.println("rowValues====" + JSON.toJSON(rowValues));
                Object obj = JSON.toJSON(rowValues);
                for (int i = 0; i < rowValues.length; i++) {
                    // System.out.println(rowValues[i]);
                    map.put("测试" + String.valueOf(i + 1), rowValues[i]);
                }
                leee.add(map);
                list1.add(leee);
            }
            leees.add(list1);
            System.out.println(leees);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (Exception e) {
            }
        }
    }
}
标题行的值==>id
标题行的值==>author_id
标题行的值==>category_i
标题行的值==>views
标题行的值==>comments
标题行的值==>title
标题行的值==>content
--------------------
[[[{测试5=1, 测试4=1, 测试3=1, 测试2=1, 测试7=1, 测试6=1, 测试1=1}, {测试5=2, 测试4=2, 测试3=2, 测试2=2, 测试7=2, 测试6=2, 测试1=2}, {测试5=3, 测试4=3, 测试3=3, 测试2=3, 测试7=3, 测试6=3, 测试1=3}, {测试5=3, 测试4=3, 测试3=1, 测试2=1, 测试7=3, 测试6=3, 测试1=4}, {测试5=4, 测试4=4, 测试3=1, 测试2=1, 测试7=4, 测试6=4, 测试1=5}], [{测试5=1, 测试4=1, 测试3=1, 测试2=1, 测试7=1, 测试6=1, 测试1=1}, {测试5=2, 测试4=2, 测试3=2, 测试2=2, 测试7=2, 测试6=2, 测试1=2}, {测试5=3, 测试4=3, 测试3=3, 测试2=3, 测试7=3, 测试6=3, 测试1=3}, {测试5=3, 测试4=3, 测试3=1, 测试2=1, 测试7=3, 测试6=3, 测试1=4}, {测试5=4, 测试4=4, 测试3=1, 测试2=1, 测试7=4, 测试6=4, 测试1=5}], [{测试5=1, 测试4=1, 测试3=1, 测试2=1, 测试7=1, 测试6=1, 测试1=1}, {测试5=2, 测试4=2, 测试3=2, 测试2=2, 测试7=2, 测试6=2, 测试1=2}, {测试5=3, 测试4=3, 测试3=3, 测试2=3, 测试7=3, 测试6=3, 测试1=3}, {测试5=3, 测试4=3, 测试3=1, 测试2=1, 测试7=3, 测试6=3, 测试1=4}, {测试5=4, 测试4=4, 测试3=1, 测试2=1, 测试7=4, 测试6=4, 测试1=5}], [{测试5=1, 测试4=1, 测试3=1, 测试2=1, 测试7=1, 测试6=1, 测试1=1}, {测试5=2, 测试4=2, 测试3=2, 测试2=2, 测试7=2, 测试6=2, 测试1=2}, {测试5=3, 测试4=3, 测试3=3, 测试2=3, 测试7=3, 测试6=3, 测试1=3}, {测试5=3, 测试4=3, 测试3=1, 测试2=1, 测试7=3, 测试6=3, 测试1=4}, {测试5=4, 测试4=4, 测试3=1, 测试2=1, 测试7=4, 测试6=4, 测试1=5}], [{测试5=1, 测试4=1, 测试3=1, 测试2=1, 测试7=1, 测试6=1, 测试1=1}, {测试5=2, 测试4=2, 测试3=2, 测试2=2, 测试7=2, 测试6=2, 测试1=2}, {测试5=3, 测试4=3, 测试3=3, 测试2=3, 测试7=3, 测试6=3, 测试1=3}, {测试5=3, 测试4=3, 测试3=1, 测试2=1, 测试7=3, 测试6=3, 测试1=4}, {测试5=4, 测试4=4, 测试3=1, 测试2=1, 测试7=4, 测试6=4, 测试1=5}]]]

POM文件

<dependency>
            <groupId>com.github.albfernandez</groupId>
            <artifactId>javadbf</artifactId>
            <version>1.13.1</version>
        </dependency>

DBF文件样式;


相关文章
|
20天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
76 0
|
1月前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
2月前
|
存储 安全 数据管理
Linux文件时间戳:解析时区与修改时间的相互作用
Linux文件时间戳:解析时区与修改时间的相互作用
49 2
|
2月前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
35 0
|
2月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
12天前
|
弹性计算 运维 Shell
|
13天前
|
分布式计算 Java 大数据
MaxCompute产品使用合集之大数据计算MaxCompute外部表映射了oss中的csv文件,看到"\N"被解析为"N",是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
16天前
|
移动开发 数据可视化 Linux
Linux 中的文件与目录管理解析
当谈到Linux系统,文件与目录管理是其中最基本和重要的部分之一。Linux提供了一种强大而灵活的方式来组织和管理文件和目录,让用户能够轻松地访问和操作系统中的各种数据。上一节我们说到文件的属性,本文将详细介绍Linux中的文件与目录管理的各个方面。
|
16天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
23天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
26 1

推荐镜像

更多