DBF文件解析DEMO

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 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文件样式;


相关文章
|
2月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
14天前
云解析分享文件
这座建筑结合了现代设计与和谐的自然景观。大面积的玻璃窗让居住者可以充分享受美景和阳光,同时保证了室内充足的自然光线。是体验宁静生活与自然之美的理想之地。图片展现了其优美的自然环境和现代建筑设计的完美融合。
38 6
云解析分享文件
|
4月前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
|
2月前
|
XML 存储 网络安全
ROS入门(二):launch文件解析
该文章是关于ROS入门的第二篇教程,详细解析了ROS中的launch文件,包括其运行方式、XML格式规范、标签使用、参数替代、条件属性以及通过简单和复杂案例来演示launch文件的使用,最后介绍了如何在参数服务器上设置参数。
ROS入门(二):launch文件解析
|
20天前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
57 9
|
2月前
|
存储 数据采集 数据可视化
深入解析GPS接收机的位置数据文件:项目实战从数据解析到可视化
全球定位系统(GPS)是现代技术的支柱之一,广泛应用于交通导航、科学研究、智能设备等领域。GPS接收机通过接收来自卫星的信号,确定设备的地理位置,并将这些位置信息记录在数据文件中。 这些数据文件通常包含大量的信息,如时间、位置、海拔高度、卫星状态等。本篇文章将通过解析这些数据文件,展示如何利用Python和Folium库实现数据的读取、处理和可视化,帮助读者深入理解GPS数据的处理过程。
|
2月前
|
监控 数据挖掘 Python
python3解析wav文件获取dtmf值
【8月更文挑战第5天】这段Python代码示例展示了如何解析WAV文件并检测其中的双音多频(DTMF)信号。它首先打开并读取WAV文件的内容,接着利用`numpy`和`scipy`库计算频谱图。通过定义标准的DTMF频率对,并在频谱中寻找这些特定的频率组合,从而识别出DTMF值。此代码可用于电话系统监控或音频数据分析项目中,以自动化检测和处理DTMF信号。
|
2月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
51 0
|
2月前
|
测试技术 PHP 开发工具
深入解析 Laravel 中的 Composer Lock 文件
【8月更文挑战第31天】
22 0
|
2月前
|
测试技术 PHP 开发工具
深入解析 Laravel 中的 Composer Lock 文件
【8月更文挑战第31天】
21 0

推荐镜像

更多
下一篇
无影云桌面