用Java读取EDI数据

R语言之读取Excel及csv数据 R语言读取数据的几种方法,用read.table(),read.xlsx()读取Excel,csv数据 阅读详情

如今,大多数Java开发人员期望使用JSON来与其他系统和企业交换数据。但是,当无法使用JSON时会发生什么呢?容易忘记,还有其他格式的数据交换,其中一些更难处理。一种这样的格式称为EDI。EDI本身有多种风格(例如X12和EDIFACT),因此读取它的代码可能并不总是“一刀切”。

特别期间通过优锐课在线的java分享中,了解了关于用Java读取EDI数据。
受益匪浅,特整理出来供大家参考学习。

从表面上看,读取EDI数据似乎很简单。开发人员可能会看到示例文件,并尝试使用其编程语言的标准库中提供的基本字符串解析API来读取该文件。不幸的是,这可能并不总是有效,并且很难进行数据验证和有效处理文档的结构。

什么是EDI?一个介绍

EDI是一个通用术语,涵盖了几种用于在企业(或任何两方)之间交换数据的标准数据格式。X12和EDIFACT是两个最常用的标准。这两个标准都以一系列命名段(基本上是包含各个字段的记录)表示数据。例如,一个简单的细分可能看起来像这样:
SEGSMITHJOHN20190101~
在此示例中,段的名称为“ SEG”,它包含三个字段-两个字符串和一个日期。每个字段(称为元素)都由定界符
(星号)彼此分隔,并且段的末尾用定界符~(代字号)指示。

EDI还具有类似于XML或JSON的结构,其中段嵌套在称为循环的开始/结束边界内。在该示例中,X12确认交换如下所示;缩进被添加以强调结构。但是,实际上,通过查看未格式化的EDI文件,该结构并不明显。

ISA00 00 ZZReceiver ZZSender 1910311301*^005010000000010P*:~
GSFAReceiverDeptSenderDept20191031130123000001X005010X230~
ST9970001~
AK1HC000001~
AK28370001~
AK3NM18**8~
AK48667MI~
AK5R5~
AK9R110~
SE80001~
GE1000001~
IEA1000000001~

阅读EDI作为事件流

读取EDI的一种方法是处理dat anonymous anonymous anonymous sa事件流。该StAEDI(发音为“稳定”)的Java库花费EDI相同的做法,即标准Java API的StAX需要处理XML -事件流。一个仅列出段名称的简单程序可能看起来像这样:

EDIInputFactory factory = EDIInputFactory.newFactory();
InputStream stream = new FileInputStream("my_edi_file.txt");
EDIStreamReader reader = factory.createEDIStreamReader(stream);
EDIStreamEvent event;
while (reader.hasNext()) {
  event = reader.next();
  if (event == EDIStreamEvent.START_SEGMENT) {
    System.out.println("Segment: " + reader.getText());
  }
}

如果你熟悉StAX API for XML,这应该看起来很熟悉。在 EDIStreamReader以类似于迭代器或数据库结果集的循环中使用。对该next方法的每次调用 都会从EDI文件返回下一个数据事件。除了段开头的事件外,还有一些事件需要处理:

交换的开始和结束( ISA / IEA 在X12中, UNB / UNZ 对于EDIFACT)
开始和消息组的端部( GS / GE 在X12, UNG / UNE 对EDIFACT)
事务的开始和结束( ST / SE 在X12中, UNH / UNT 对于EDIFACT)
循环的开始和结束(取决于配置)
段的开始和结束
复合元素的开始和结束
个别数据元素
细分错误
数据元素错误

那么结构和验证又如何呢?

使用StAEDI处理EDI 仅会给你基本结构和验证(交换,组和事务信封结构)。如果你需要处理事务中的数据的结构和验证(你可能需要这样做),则必须提供一个架构。模式大致基于标准XML模式语法,并提供有关事务中段和元素顺序的详细信息。另外,可以对元素的长度和数据类型施加约束。

997 可以使用以下XML定义上述示例X12 事务的EDI模式 。所述 transaction 元件及其子元素定义的交易的结构。每个段都引用 segmentType 下面定义的元素,必要时每个都 segmentType 引用 elementType s和 compositeType s。identifier 为简洁起见,大多数元素类型的枚举值 已被省略。

<schema xmlns="http://xlate.io/EDISchema/v2">
  <transaction>
    <sequence>
      <segment ref="AK1" minOccurs="1" />
      <loop code="2000" maxOccurs="999999">
        <sequence>
          <segment ref="AK2" />
          <loop code="2100" maxOccurs="999999">
            <sequence>
              <segment ref="AK3" />
              <segment ref="AK4" maxOccurs="99" />
            </sequence>
          </loop>
          <segment ref="AK5" minOccurs="1" />
        </sequence>
      </loop>
      <segment ref="AK9" minOccurs="1" />
    </sequence>
  </transaction>
  <elementType name="E0002" number="2" base="numeric" maxLength="6" />
  <elementType name="E0028" number="28" base="numeric" maxLength="9" />
  <elementType name="E0097" number="97" base="numeric" maxLength="6" />
  <elementType name="E0123" number="123" base="numeric" maxLength="6" />
  <elementType name="E0143" number="143" base="identifier" minLength="3" maxLength="3" />
  <elementType name="E0329" number="329" base="string" minLength="4" maxLength="9" />
  <elementType name="E0447" number="447" base="string" maxLength="4" />
  <elementType name="E0479" number="479" base="identifier" minLength="2" maxLength="2" />
  <elementType name="E0480" number="480" base="string" maxLength="12" />
  <elementType name="E0715" number="715" base="identifier">
    <enumeration>
      <value>A</value>
      <value>E</value>
      <value>M</value>
      <value>P</value>
      <value>R</value>
      <value>W</value>
      <value>X</value>
    </enumeration>
  </elementType>
  <elementType name="E0716" number="716" base="identifier" maxLength="3" />
  <elementType name="E0717" number="717" base="identifier">
    <enumeration>
      <value>A</value>
      <value>E</value>
      <value>M</value>
      <value>R</value>
      <value>W</value>
      <value>X</value>
    </enumeration>
  </elementType>
  <elementType name="E0718" number="718" base="identifier" maxLength="3" />
  <elementType name="E0719" number="719" base="numeric" maxLength="10" />
  <elementType name="E0720" number="720" base="identifier" maxLength="3" />
  <elementType name="E0721" number="721" base="string" minLength="2" maxLength="3" />
  <elementType name="E0722" number="722" base="numeric" maxLength="2" />
  <elementType name="E0723" number="723" base="identifier" maxLength="3" />
  <elementType name="E0724" number="724" base="string" maxLength="99" />
  <elementType name="E0725" number="725" base="numeric" maxLength="4" />
  <elementType name="E1528" number="1528" base="numeric" maxLength="2" />
  <elementType name="E1686" number="1686" base="numeric" maxLength="4" />
  <elementType name="E1705" number="1705" base="string" maxLength="35" />
  <compositeType name="C030">
    <sequence>
      <element ref="E0722" minOccurs="1" />
      <element ref="E1528" />
      <element ref="E1686" />
    </sequence>
  </compositeType>
  <segmentType name="AK1">
    <sequence>
      <element ref="E0479" minOccurs="1" />
      <element ref="E0028" minOccurs="1" />
      <element ref="E0480" />
    </sequence>
  </segmentType>
  <segmentType name="AK2">
    <sequence>
      <element ref="E0143" minOccurs="1" />
      <element ref="E0329" minOccurs="1" />
      <element ref="E1705" />
    </sequence>
  </segmentType>
  <segmentType name="AK3">
    <sequence>
      <element ref="E0721" minOccurs="1" />
      <element ref="E0719" minOccurs="1" />
      <element ref="E0447" />
      <element ref="E0720" />
    </sequence>
  </segmentType>
  <segmentType name="AK4">
    <sequence>
      <composite ref="C030" minOccurs="1" />
      <element ref="E0725" />
      <element ref="E0723" minOccurs="1" />
      <element ref="E0724" />
    </sequence>
  </segmentType>
  <segmentType name="AK5">
    <sequence>
      <element ref="E0717" minOccurs="1" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
    </sequence>
  </segmentType>
  <segmentType name="AK9">
    <sequence>
      <element ref="E0715" minOccurs="1" />
      <element ref="E0097" minOccurs="1" />
      <element ref="E0123" minOccurs="1" />
      <element ref="E0002" minOccurs="1" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
    </sequence>
  </segmentType>
</schema>`在这里插入代码片`

在解析EDI文件时使用架构很简单。当程序遍历事件流时,应用程序代码必须在事务开始时提供Schema对象。(段末之前)

<schema xmlns="http://xlate.io/EDISchema/v2">
  <transaction>
    <sequence>
      <segment ref="AK1" minOccurs="1" />
      <loop code="2000" maxOccurs="999999">
        <sequence>
          <segment ref="AK2" />
          <loop code="2100" maxOccurs="999999">
            <sequence>
              <segment ref="AK3" />
              <segment ref="AK4" maxOccurs="99" />
            </sequence>
          </loop>
          <segment ref="AK5" minOccurs="1" />
        </sequence>
      </loop>
      <segment ref="AK9" minOccurs="1" />
    </sequence>
  </transaction>
  <elementType name="E0002" number="2" base="numeric" maxLength="6" />
  <elementType name="E0028" number="28" base="numeric" maxLength="9" />
  <elementType name="E0097" number="97" base="numeric" maxLength="6" />
  <elementType name="E0123" number="123" base="numeric" maxLength="6" />
  <elementType name="E0143" number="143" base="identifier" minLength="3" maxLength="3" />
  <elementType name="E0329" number="329" base="string" minLength="4" maxLength="9" />
  <elementType name="E0447" number="447" base="string" maxLength="4" />
  <elementType name="E0479" number="479" base="identifier" minLength="2" maxLength="2" />
  <elementType name="E0480" number="480" base="string" maxLength="12" />
  <elementType name="E0715" number="715" base="identifier">
    <enumeration>
      <value>A</value>
      <value>E</value>
      <value>M</value>
      <value>P</value>
      <value>R</value>
      <value>W</value>
      <value>X</value>
    </enumeration>
  </elementType>
  <elementType name="E0716" number="716" base="identifier" maxLength="3" />
  <elementType name="E0717" number="717" base="identifier">
    <enumeration>
      <value>A</value>
      <value>E</value>
      <value>M</value>
      <value>R</value>
      <value>W</value>
      <value>X</value>
    </enumeration>
  </elementType>
  <elementType name="E0718" number="718" base="identifier" maxLength="3" />
  <elementType name="E0719" number="719" base="numeric" maxLength="10" />
  <elementType name="E0720" number="720" base="identifier" maxLength="3" />
  <elementType name="E0721" number="721" base="string" minLength="2" maxLength="3" />
  <elementType name="E0722" number="722" base="numeric" maxLength="2" />
  <elementType name="E0723" number="723" base="identifier" maxLength="3" />
  <elementType name="E0724" number="724" base="string" maxLength="99" />
  <elementType name="E0725" number="725" base="numeric" maxLength="4" />
  <elementType name="E1528" number="1528" base="numeric" maxLength="2" />
  <elementType name="E1686" number="1686" base="numeric" maxLength="4" />
  <elementType name="E1705" number="1705" base="string" maxLength="35" />
  <compositeType name="C030">
    <sequence>
      <element ref="E0722" minOccurs="1" />
      <element ref="E1528" />
      <element ref="E1686" />
    </sequence>
  </compositeType>
  <segmentType name="AK1">
    <sequence>
      <element ref="E0479" minOccurs="1" />
      <element ref="E0028" minOccurs="1" />
      <element ref="E0480" />
    </sequence>
  </segmentType>
  <segmentType name="AK2">
    <sequence>
      <element ref="E0143" minOccurs="1" />
      <element ref="E0329" minOccurs="1" />
      <element ref="E1705" />
    </sequence>
  </segmentType>
  <segmentType name="AK3">
    <sequence>
      <element ref="E0721" minOccurs="1" />
      <element ref="E0719" minOccurs="1" />
      <element ref="E0447" />
      <element ref="E0720" />
    </sequence>
  </segmentType>
  <segmentType name="AK4">
    <sequence>
      <composite ref="C030" minOccurs="1" />
      <element ref="E0725" />
      <element ref="E0723" minOccurs="1" />
      <element ref="E0724" />
    </sequence>
  </segmentType>
  <segmentType name="AK5">
    <sequence>
      <element ref="E0717" minOccurs="1" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
      <element ref="E0718" />
    </sequence>
  </segmentType>
  <segmentType name="AK9">
    <sequence>
      <element ref="E0715" minOccurs="1" />
      <element ref="E0097" minOccurs="1" />
      <element ref="E0123" minOccurs="1" />
      <element ref="E0002" minOccurs="1" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
      <element ref="E0716" />
    </sequence>
  </segmentType>
</schema>

喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
如果你对java技术很感兴趣也可以进qun 907135806 交流学习,共同学习进步。 最新java免费资料
不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代
文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货
在这里插入图片描述

EDI解析器入门:用纯Java流式读取X12与EDIFACT报文 电子数据交换(EDI)是一种用于跨系统传输业务文档的标准化格式,常见于医疗、金融和物流领域。其原理基于严格的段、元素和分隔符规则,确保机器可高效解析。EDI解析器作为关键技术,能够将X12、EDIFACT等报文转换为程序可处理的结构,提升系统集成效率。在医疗理赔、保险结算和物流对账等场景中,解析器帮助Java应用低成本对接遗留系统。EDIReader作为轻量级纯Java实现,支持流式解析和XML映射,为开发者提供高效、可嵌入的解决方案。 阅读详情

相关推荐

java-edi平台开发流程

java edi开发流程,edi接受与发送的配置,解析,映射,导出文件

java edi 解析与生成 最佳实践

ERP 系统中有一种常见信息交换格式为 EDI,常见的 X12 标准里也会有 EDI 身影。实战解析和生成,两个 demo 带你学会 EDI

wolanx的博客 3167

OpenAS2:Java 中的 AS2 1.1 服务器实现-开源

OpenAS2 是 EDIINT AS2 标准的基于 Java 的实现。 它旨在用作服务器。 它是极其可配置的,并支持多种签名和加密算法。 要求: - Java 1.8 或更新版本 - 在下一个主要版本中运行 Java 计划增强功能的任何操作系统: - 用户界面配置 GUI - 证书交换管理 重要:不再支持 Java 1.7。

java as2_使用AS2(http)协议实现 B2B 商用数据交换 (二) [译]

前言设计 AS2 协议的主要目的,是基于 HTTP 协议之上实现安全的结构化电子商业数据交换。在这系列文章的第一部分,我们大体了解了 AS2 为何这么优秀。我们作为 B2B 集成平台 AS2Gateway 的开发者,已经在 AS2 协议这方面工作了很多年。在本篇文章中,我们希望给予更多的见解关于 AS2 协议,如何使用几行 java 代码和 S/MIME 格式去构造一个 AS2 消息。废话不多说,...

weixin_33895396的博客 1576

mendelson AS2:EDIINT AS2 协议 (RFC 4130) 的实现-开源

mendelson AS2 是一个基于 JAVA 的开源 EDIINT AS2 解决方案。 日志记录和配置 GUI (SWING)、异步和同步 MDN、签名、加密、SSL、Web 界面、可插入任何 servlet 容器、TP 管理器、压缩、可选配置文件:MA、FN

Edifatto:解析,验证,浏览和转换EDIFACT和X12的工具-开源

“ Edifatto”是用于解析,验证和浏览EDI(EDIFACT和X12)文档的工具。 用户界面是GUI,命令行和Java API。 除了核心功能集之外,EDI文档还可以作为XML文档导出和导入,从而可以集成到基于XML的工具和工作流程中(例如匿名化或XSLT处理)。

Staedi:项目的核心功能/场景

Staedi:项目的核心功能/场景 Staedi 是一个用于 EDI(电子数据交换)读取、写入和验证的 Java 流式 API。 项目介绍 Staedi 是一个专为 EDI 设计的流式 API,它为 Java 开发者提供了一种高效的方式来处理 EDI 文件。EDI 是一种标准化的数据格式,常用于企业间的电子数据交换。Staedi 支持多种 EDI 标准,如 X12、EDIFACT 和 TRADAC...

gitblog_00108的博客 919

RISC-V IP中的ITCM/DTCM与Slave-AHB接口设计解析

本文深入解析RISC-V IP中ITCM/DTCM与Slave-AHB接口的设计要点,涵盖TCM架构原理、总线协议实现及性能优化策略。通过实际案例展示如何实现单周期访问延迟,解决跨时钟域同步等关键问题,为嵌入式系统提供确定性内存访问方案。特别探讨了AHB总线仲裁机制和RTL实现技巧,助力开发者构建高效可靠的RISC-V处理器子系统。

weixin_28419039的博客 529

Java读写edi,从java Object准备edi数据

我是edi数据的新手.我使用smooks api来读取edi数据并能够将其解析为java对象.我想将java对象转换为edi数据,因为我没有获得太多信息.这是我试图从edi文件中读取并创建java对象的示例 –customOrder.edi - COR*130*PINGPONG02*You got it to work*1230---------------POJO -------public c...

weixin_33747775的博客 765

【小程序】支付宝直付通解决方案

支付宝直付通是支付宝为小程序提供的一种支付解决方案,可以实现小程序中直接使用支付宝进行支付。以上是一个简单的支付宝直付通解决方案及相关代码示例。具体的使用还需要根据自己的业务需求进行定制化开发和调整。

qq_31532979的贺公子之数据科学与艺术博客,致力于科技向善,拥抱开源,要用技术的影响力来领导团队,而不是威权和职位! 1281

​开源大模型实战:GLM-4.1V-Thinking本地部署教程(附API调用代码)

​在AI应用从“能用”向“好用”进阶的当下,​的需求愈发强烈:企业需保障数据安全(如医疗影像、金融报告不外传),开发者追求定制化能力(如微调模型适配垂直场景),科研团队则依赖离线环境处理敏感数据。智谱AI开源的​(10B级参数,支持图像、视频、文档多模态推理)凭借的优势,成为本地部署的热门选择。不过,对于“不想折腾技术”的普通用户或快速验证需求的团队而言,​,无需安装配置,打开即用,堪称“零门槛”体验的捷径。本文将分为两部分:先手把手教你​(适合有技术背景的用户),再对比介绍。

gogoMark的博客 1339

使用 Smooks Eclipse 插件轻松完成 XML 到 Java 的数据转换

引言 XML (eXtensible Markup Language) 是 W3C 定义的一种用以描述结构化数据的元语言 (Meta Language)。由于 XML 的目标就是为了促进 Internet 中结构化文档的交换,因此其被设计为与具体编程语言、操作系统或传输协议无关的纯数据描述。正是由于 XML 的数据独立性,它的出现给分布式计算领域 (distributed computing

飞鸟Blog 3374

【新华三】通过路由复制实现Public与VRF路由互通

如上图所示,S6900设备里有两张表,一张是public路由表,默认所有的路由都存放在public路由表里;除此之外还创建了VRF test,因此此设备还有VRF test路由表。通过路由复制实现Public路由和VRF路由互通,默认情况下VRF里的路由单独一张路由表,默认情况下与public路由表相互隔离,两张表之间不可互访。此时的public路由表里面并没有test的路由表。public路由表与VRF路由表之间相互隔离。此时VRF test里的路由也没有其他VRF或Public里的路由,相互隔离。

五大连池的镜子 5279

RDPCrystal EDI 验证 10.0.4.5 for NET

RDPCrystal EDI 库是一套 EDI 组件(.NET、NodeJS/JavaScript 和 .NET Core),可以创建和操作任何 X12 标准文件。功能包括解析、连接、拆分、验证和加载。它适用于 WPF、WinForms、JavaScript 和 Java(需要 javOnet)应用程序,并支持任何 .NET 语言。使用 RDPScript EDI 语言进行极端 EDI 验证。.NET Core 版本可在 Linux 和 Mac 操作系统上运行。

控件与插件之大全 653

别再只用GPS了!用Android手机传感器实现室内步行轨迹记录(避坑指南)

本文详细介绍了如何利用Android手机传感器(如加速度计、陀螺仪和磁力计)实现室内步行轨迹记录,克服GPS在室内的局限性。通过传感器数据采集、步态检测、航向估计和轨迹绘制等步骤,结合避坑指南和优化技巧,帮助开发者高效构建室内定位应用。

weixin_26821003的博客 274

社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出

在NetLogo中,社会网络的仿真不仅依赖于模型的内部逻辑,还需要能够灵活地导入和导出数据。这使得用户可以利用外部数据来初始化模型,或者将模型的运行结果导出以便进一步分析。本节将详细介绍如何在NetLogo中实现社会网络数据的导入和导出,包括常见的数据格式和具体的代码示例。

kkchenjj的博客 600

使用java从MySQL数据库中读取数据(一个简单的java web实现)

零基础开发 javaWeb 一、实验目的及要求 使用java语言从MySQL数据库中查询其中一个表的数据。 二、实验环境 Windows 10环境 java version: 11.0.10 IDE工具:IntelliJ IDEA 2020.3 MySQL: 5.7.26

点滴技术 1万+

1、Ka频段双极化低剖面卫通相控阵天线

设计了双馈口叠层十字缝隙耦合天线,采用“双线极化天线 +旋转馈电 + 移相控制”架构,采用双馈口的叠层十字缝隙耦合天线,并以 2 x2 阵列为主体,旋转排布实现二次圆极化,同时极化可切换,通过多层 PCB 工艺实现天线层、控制/电源层功分网终层、芯片层一体化集成,研制出 64 阵元的圆极化可切换发射天线,测试结果表明:天线工作 频段为 27.5 ~31 GHz,可实现60°扫描,法向轴比

qq_43416206的博客 4369

使用Email Receive端口上传文件至EDI系统

此前的文章中小知带大家学习了EDI系统如何通过AS2端口接收文件并使用Email Send端口发送邮件提醒。本篇文章小知将带大家了解如何使用Email Receive端口上传文件至EDI系统。 EDI系统可以实现无缝集成企业的业务系统,但对于业务系统不够成熟或者没有业务系统的企业而言,可以使用EDI系统中的Email Receive端口连接用户邮箱的方式上传业务文件。这种操作不用在EDI系统中进行过多操作,技术人员配置好相关信息,业务人员接收到新邮件后,只需在Email Receive端口点击Receive

EDI电子数据交换 | 知行软件 625

Unity之OpenXR+XR Interaction Toolkit接入HTC Vive

目前VR领域,最流行的设备要当属HTC VIVE了。以前在Unity端接入HTC VIVE设备时,都是通过SteamVR+VRTK来接入的。但是随着Unity的版本升级和OpenXR标准的流行,再加上VR设备的逐渐增多。SteamVR+VRTK的方式已经无法更好的满足大家的需求。

TxNet 4137

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

EDI系统与业务系统集成:选择中间数据库还是REST API方案?

EDI项目中,对外企业可以借助专业的EDI系统,基于AS2、OFTP等国际通用的EDI传输协议搭建传输通道,并基于这些传输通道实现安全、可靠地数据传输。对内企业如何实现业务系统和EDI系统之间的数据同步呢?企业可以通过中间数据库、REST API、WebService、共享文件夹等方式实现EDI系统与企业内部业务系统的集成。其中使用中间数据库方案和REST API成为大多数企业的选择。本文将重点介绍这两种方案,企业可以结合实际业务情况进行选择。

EDI电子数据交换 | 知行软件 800

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

RDPCrystal EDI SDK 10.0.4.X Crack

RDPCrystal EDI 库是一套 EDI 组件(.NET、NodeJS/JavaScript 和 .NET Core),可以创建和操作任何 X12 标准文件。功能包括解析、连接、拆分、验证和加载。它适用于 WPF、WinForms、JavaScript 和 Java(需要 javOnet)应用程序,并支持任何 .NET 语言。使用 RDPScript EDI 语言进行极端的 EDI 验证。.NET Core 版本运行在 Linux 和 Mac 操作系统上。

控件与插件之大全 458

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android学习:SharedPreferences存储数据及读取数据

一、将数据存储到SharedPreferences中 1.SharedPreferences以键值对的形式来存储数据。 2.Android中主要提供3种方法用于得到SharedPreferences对象 Context类中的getSharedPreferences(String name, int mode)方法,第一个参数:指定SharedPreferences文件的名称(若指定的文件不存...

shexianyu的博客 1万+

Android开发,你也可以之数据的保存与读取

一起学习安卓开发,你也可以!!! 有帮助的话记得一键三连,点赞收藏关注,持续更新哦~ 文章目录前言一、页面布局二、功能实现总结 前言 本文介绍了在Android移动开发中如何使用Android Studio对数据进行储存和读取操作。 一、页面布局 在xml文件中放置2个文本输入框进行用户名和密码的输入,放置2个按钮进行数据的保存和读取。 代码如下: <EditText android:id="@+id/et_username" android:hint="请输入用

weixin_50042243的博客 1712

Java读写edi_Java -- GUI -- EDI

*DET:*SwingUtitlies.invokeLaterSwing一般有三种类型的线程:*Initial Thread (初始化线程):在许多Swing程序中,该线程主要目的是启动程序的图形用户界面(GUI)。创建UI的点,也就是程序开始将控制权转交给UI时的点。一旦GUI启动后,对于大多数事件驱动的桌面程序来说,初始化线程的工作就结束了。每个程序必须有一个main方法,这是程序的入口。该方...

weixin_34827675的博客 416

java 读取文件 地址,读取数据文件地址(Java)

I have this code for reading data and works fine but I want to change the start point that the data is read from - My DataFile.txt is "abcdefghi"and the output is1)972)983)994)100I want to start at th...

weixin_35453718的博客 274
上一篇: Netty:可能是世界上最好的包装结构
下一篇: 实用技能 使用Docker部署ELK
程序员plus
博客等级 码龄8年 41粉丝 151原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值