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文件样式;


相关文章
|
3月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
4天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
235 0
|
1月前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
309 60
|
10天前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
29天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
数据处理 Python
Python 高级技巧:深入解析读取 Excel 文件的多种方法
在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。
175 16
|
2月前
云解析分享文件
这座建筑结合了现代设计与和谐的自然景观。大面积的玻璃窗让居住者可以充分享受美景和阳光,同时保证了室内充足的自然光线。是体验宁静生活与自然之美的理想之地。图片展现了其优美的自然环境和现代建筑设计的完美融合。
46 6
云解析分享文件
|
1月前
|
存储 搜索推荐 数据库
运用LangChain赋能企业规章制度制定:深入解析Retrieval-Augmented Generation(RAG)技术如何革新内部管理文件起草流程,实现高效合规与个性化定制的完美结合——实战指南与代码示例全面呈现
【10月更文挑战第3天】构建公司规章制度时,需融合业务实际与管理理论,制定合规且促发展的规则体系。尤其在数字化转型背景下,利用LangChain框架中的RAG技术,可提升规章制定效率与质量。通过Chroma向量数据库存储规章制度文本,并使用OpenAI Embeddings处理文本向量化,将现有文档转换后插入数据库。基于此,构建RAG生成器,根据输入问题检索信息并生成规章制度草案,加快更新速度并确保内容准确,灵活应对法律与业务变化,提高管理效率。此方法结合了先进的人工智能技术,展现了未来规章制度制定的新方向。
34 3

推荐镜像

更多