当前位置: 首页 > news >正文

文件数据交换格式说明

对于文件的说明

二进制文件和文本文件的对比

对比项二进制文件文本文件
定义二进制文件直接由二进制数字0和1组成,不存在统一的字符编码。文本文件是基于字符编码的文件,一般采用定长编码方式,如ASCII编码、UNICODE编码。
优势1. 存储利用率高,因为编码是变长的,灵活利用存储空间。1. 易于人类阅读和编辑,因为文本文件以字符形式存储,可以直接查看和编辑。
2. 适用于存储各种类型的数据,包括图像、音频、视频等。2. 通用性强,因为基于字符编码,可以在不同的系统和软件中交换和读取。
3. 在某些情况下,二进制文件的读写速度更快。
劣势1. 不直观,无法直接查看和编辑文件内容。1. 存储利用率相对较低,因为采用定长编码方式,可能会浪费存储空间。
2. 不同的二进制文件格式有不同的解析方式,增加了处理复杂性。2. 对于非文本数据(如图像、音频等),文本文件无法直接存储,需要转换编码或进行Base64编码。
3. 在国际化场景下,文本文件可能需要处理字符编码的问题,如Unicode编码和各种字符集的转换。

1. 二进制文件 [Binary file]
计算机文件基本上分为二种:二进制文件 和 ASCII(也称纯文本文件),

图形文件及文字处理程序等计算机程序都属于二进制文件。// 所以常常可以听到下载的二进制可执行文件

这些文件[二进制文件]含有特殊的格式及计算机代码。

ASCII 则是可以用任何文字处理程序阅读的简单文本文件。


文本文件只是二进制文件中的一种特例。

为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。

https://baike.baidu.com/item/二进制文件/996661?fr=aladdin

2. 纯文本文件 [Text file]
纯文本 由可打印字符组成,人可以直接阅读和理解其形式。

例如:

百科=百度百科、整数类型 甲变量。


纯文本并非意味着文本是无结构的;

标准通用标记语言[SGM或SGML]和HTML、XML都是有结构定义良好的的纯文本的好例子。

通过纯文本,你可以做你通过某种二进制格式所能做的每件事情,其中包括版本管理。

与直接的二进制编码相比,纯文本所处的层面往往更高;

前者[二进制文件]通常直接源自实现。

假定你想要存储叫做uses_menus的属性,其值既可为真/true,也可为假/false。

使用纯文本,你可以将其写为:myprop.uses_menus=FALSE 把它与0010010101110101对比一下。

大多数二进制格式的问题在于,理解数据所必需的语境与数据本身是分离的。

你人为地使数据与其含义脱离开来。数据也可能加了密;没有应用逻辑对其进行解析,这些数据绝对没有意义。但是,通过纯文本,你可以获得自描述(self-describing)的、不依赖于创建它的应用的数据流。

https://baike.baidu.com/item/二进制文件/996661?fr=aladdin

补充:

二进制文件, 跟存储方式[在硬盘上]没有关系。

即不是因为存储格式为二进制的关系, 而是这些文件 含有特殊的格式及计算机代码.
 

文本文件和数据库格式文件对比

格式类型优势劣势
文本格式1. 简单易用,无需特殊软件或中间件1. 查询效率低,特别是对于大型文本文件
(如TXT、CSV等)2. 适用于小型工程或查询效率要求不高的应用2. 难以保证数据完整性和一致性
3. 可直观查看和编辑数据3. 不支持事务处理
4. 不适合存储大量数据
数据库格式1. 结构化数据存储,确保数据的完整性和一致性1. 数据库维护成本较高
(如MySQL、Oracle等)2. 高效查询,支持索引和优化查询性能2. 需要安装和配置数据库软件
3. 支持大量数据存储,不影响程序运行速度3. 需要编写SQL语句操作数据库
4. 支持多用户并发访问和共享数据4. 开发成本可能高于文本文件
5. 提供数据安全性、事务处理和并发控制等功能

文本格式和数据库格式在数据存储和管理方面有着显著的区别,各自具有不同的优势和劣势。以下是对这两种格式的比较:

文本格式:

优势:

  1. 通用性:文本格式是一种通用的数据交换格式,几乎所有的系统和软件都能读取和处理文本文件。
  2. 简单性:文本文件结构简单,易于创建、编辑和查看。
  3. 可读性:文本文件可以直观地查看和编辑,不需要专门的软件或工具。

劣势:

  1. 数据结构限制:文本格式通常缺乏严格的数据结构,这使得在处理复杂数据时容易出现错误。
  2. 查询效率低:文本文件不支持快速的搜索和查询,特别是对于大型文本文件,查找特定数据可能非常耗时。
  3. 安全性和完整性:文本文件容易损坏或被篡改,且缺乏内置的数据完整性和安全性机制。

数据库格式:

优势:

  1. 结构化数据存储:数据库具有严格的数据结构,能够确保数据的完整性和一致性。
  2. 高效查询:数据库支持索引和查询优化,使得在大量数据中查找特定信息变得非常快速和高效。
  3. 数据安全性:数据库通常具有内置的安全机制,如用户认证、访问控制和数据加密,以确保数据的安全性。
  4. 数据完整性:数据库支持事务处理,可以确保在多个操作之间保持数据的一致性。

劣势:

  1. 复杂性:数据库的管理和维护相对复杂,需要专门的软件和专业技能。
  2. 成本:使用数据库通常需要支付许可费和维护费用,这可能增加项目的成本。
  3. 性能开销:与文本文件相比,数据库在处理数据时可能产生额外的性能开销,特别是在处理大量数据时。

综上所述,文本格式和数据库格式各有优缺点。选择哪种格式取决于具体的应用需求和场景。在需要简单、通用和易于编辑的数据存储方案时,文本格式可能是一个更好的选择。而在需要高效查询、数据安全性和结构化数据存储的情况下,数据库格式则更具优势。

各种文本文件

件类型定义优势劣势
INIINI文件是一种简单的配置文件格式,用于存储应用程序的配置信息,通常以键值对的形式存储数据。1.简单易读易写 2.适用于小型配置项1.功能较为简单,不适合复杂数据结构 2.缺乏标准化
CSVCSV(Comma Separated Values)文件是一种表格数据格式,由逗号分隔的值组成,常用于数据交换和存储。1.通用性强,可在不同系统和软件中导入导出 2.结构简单,易于生成和解析1.只支持基本文本数据类型 2.缺乏标准化,不同程序解析方式可能不同
XMLXML(Extensible Markup Language)是一种标记语言,用于描述数据的结构和含义,以标签的形式表示数据。1.结构化数据表示,清晰展示数据层次和关系 2.跨平台支持,适用于数据交换1.数据冗余度较高,文件体积相对较大 2.解析复杂度高,需要处理标签嵌套关系
JSONJSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript语法,易于阅读和编写。1.轻量级,易于阅读和编写 2.支持复杂数据结构,适用于Web应用程序1.对人类可读性一般,相比于INI和CSV稍显复杂

INI文件

一、了解什么是INI文件?

ini 文件是Initialization File的缩写,即初始化文件,这是用来配置应用软件以实现不同用户的要求。

二、INI文件的格式

INI文件由节、键、值组成。
一个简单的的INI文件例子如下:

[Setting]
INIT_FLAG=0;
VOLUME=1;
LANGUAGE=1;

如上例子,[Setting]就是节,=号左边的值是键,=号右边的是值。

三、优势

1. 简单易用

ini 文件格式具有非常清晰的语法结构,除 Section 和 Key 之外,它几乎没有其他标记。这种简单性使得 ini 文件易于编辑、维护和管理,符合 Linux 操作系统的实际需求。

2. 跨平台性好

ini 文件格式在不同的操作系统下,都有着相同的表现方式和处理方法,这种跨平台性使得程序员可以方便地将其应用于不同的操作系统和软件中。

3. 扩展性强

ini 文件格式的 Key-Value 对在文件中自行组织和分组,可以任意嵌套,这种特性使得 ini 格式文件具有非常强的扩展性,保证了日后对系统的扩展和更新不受限制。

CSV文件

  1. CSV(逗号分隔值)格式 CSV是一种简单的文本文件格式,使用逗号作为字段之间的分隔符。下面是CSV格式的基本使用方法:

代码示例:

import csv# 写入CSV文件
data = [['Name', 'Age', 'City'],['John', '25', 'New York'],['Alice', '30', 'London'],['Bob', '35', 'Paris']
]with open('data.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerows(data)# 读取CSV文件
with open('data.csv', 'r') as file:reader = csv.reader(file)for row in reader:print(row)

XML文件

  1. XML(可扩展标记语言)格式 XML是一种具有自定义标签的文本文件格式,用于存储和传输数据。下面是XML格式的基本使用方法:

代码示例:

import xml.etree.ElementTree as ET# 创建XML文件
root = ET.Element('root')employee = ET.SubElement(root, 'employee')
name = ET.SubElement(employee, 'name')
age = ET.SubElement(employee, 'age')
city = ET.SubElement(employee, 'city')name.text = 'John'
age.text = '25'
city.text = 'New York'tree = ET.ElementTree(root)
tree.write('data.xml')# 解析XML文件
tree = ET.parse('data.xml')
root = tree.getroot()for employee in root.findall('employee'):name = employee.find('name').textage = employee.find('age').textcity = employee.find('city').textprint(name, age, city)

JSON

  1. JSON(JavaScript对象表示法)格式 JSON是一种轻量级的数据交换格式,以键值对的形式组织数据。下面是JSON格式的基本使用方法:

代码示例:

import json# 创建JSON文件
data = {'employee': {'name': 'John','age': 25,'city': 'New York'}
}with open('data.json', 'w') as file:json.dump(data, file)# 解析JSON文件
with open('data.json') as file:data = json.load(file)name = data['employee']['name']
age = data['employee']['age']
city = data['employee']['city']print(name, age, city)

参考:

「File」计算机常见文件数据格式_数据存储格式_何曾参静谧的博客-CSDN博客

https://www.cnblogs.com/mymindview/p/8528600.html

文件系统 - 文件类型 - 二进制/文本类型_二进制文件-CSDN博客

C语言解析INI文件(利用开源的iniparse库) - 知乎

Python学习 -- 常用数据交换格式(CSV、XML、JSON) - 知乎

相关文章:

文件数据交换格式说明

对于文件的说明 二进制文件和文本文件的对比 对比项二进制文件文本文件定义二进制文件直接由二进制数字0和1组成,不存在统一的字符编码。文本文件是基于字符编码的文件,一般采用定长编码方式,如ASCII编码、UNICODE编码。优势1. 存储利用率高…...

2023NOIP A层联测24 总结

T1 给出树的一度点和三度点的数量,构造树的形态,节点数不超过 2000 2000 2000。我考虑先构造出三度点,发现这一度点至少是三度点2,打完后测样例不对,发现加一度点时要特判是否为三度点,花 5min 打完&#…...

vue3 项目如何配置测试环境打包

vue3 项目如何配置测试环境打包 根目录下创建.env.staging # 测试环境 NODE_ENV staging VUE_APP_MODE staging VUE_APP_TITLE 系统名称# 测试环境API接口地址 VUE_APP_API_URL 接口地址package.json文件中 scripts配置中添加以下代码 "scripts": {"serve&q…...

【CSS】样式的计算过程

标签的 CSS 样式 现在有这么一段 HTML 代码&#xff1a; <div class"test"><h1>Hello World</h1> </div>目前我们没有给 h1 设置任何样式&#xff0c;可以看到 h1 自带了一些样式&#xff0c;eg&#xff1a;font-size、font-weight、margi…...

【ArcGIS微课1000例】0076:KMZ转换KML的方法

文章目录 ArcGIS转kmzkmz转kmlArcGIS转kmz ArcGIS可以很方便的将dwg,shp、等矢量数据转为kmz。 拓展阅读: 【ArcGIS微课1000例】0075:将AutoCAD(Dwg、Dxf)文件转换为shp、KML(kml、kmz)文件...

Python基础入门例程46-NP46 菜品的价格(条件语句)

最近的博文&#xff1a; Python基础入门例程45-NP45 禁止重复注册&#xff08;条件语句&#xff09;-CSDN博客 Python基础入门例程44-NP44 判断列表是否为空&#xff08;条件语句&#xff09;-CSDN博客 Python基础入门例程43-NP43 判断布尔值&#xff08;条件语句&#xff0…...

Docker数据管理、网络与Cgroup资源限制

目录 一、Docker的数据管理 1、数据卷 2、数据卷容器 3、端口映射 4、容器互联 二、Docker网络 2.1Docker网络实现原理 2.2Docker 的网络模式 3.3网络模式详解&#xff1a; host模式 container模式 none模式 bridge模式 自定义网络 创建自定义网络 三、Cgroup资源…...

ubuntu strings | grep使用说明

例子1 查找/bin/ls路径中中&#xff0c;包含libc的字符串&#xff0c;不区分大小写&#xff1a; strings /bin/ls | grep -i libc strings /bin/ls | grep -i libcstrings表示查找字符/bin/ls表示路径| grep表示抓取 -i 表示不区分大小写libc表示要查询的内容 例子2 strings …...

<Vue>使用依赖注入的方式共享数据

什么是vue依赖注入&#xff1f; Vue是一个用于构建用户界面的渐进式框架。 它提供了一种简单而灵活的方式来管理组件之间的数据流&#xff0c;即依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;。 依赖注入是一种设计模式&#xff0c;它允许一个组件从另一…...

从0到1:腾讯云服务器使用教程

腾讯云服务器入门教程包括云服务器CPU内存带宽配置选择&#xff0c;选择云服务器CVM或轻量应用服务器&#xff0c;云服务器创建后重置密码、远程连接、搭建程序环境等&#xff0c;腾讯云服务器网txyfwq.com分享从0到1腾讯云服务器入门教程&#xff1a; 目录 腾讯云服务器入门…...

VScode + opencv + c++ + win配置教程

准备&#xff1a; 1、下载opencv 2、下载MinGw 3、 3、下载CMake 下载完解压放到一个文件夹里面&#xff0c;便于环境管理&#xff0c;文件夹我重命名了&#xff0c;解压出来文件名不一样正常 环境变量配置 C:\Users\wuxulong\cpp_env\MinGw\mingw64\bin C:\Users\wuxulon…...

机器学习---SVM目标函数求解,SMO算法

1. 线性可分支持向量机 1.1 定义输入数据 假设给定⼀个特征空间上的训练集为&#xff1a; 其中&#xff0c;(x , y )称为样本点。 x 为第i个实例&#xff08;样本&#xff09;。 y 为x 的标记&#xff1a; 当y 1时&#xff0c;x 为正例&#xff1b;当y −1时&#xff0c;x…...

044_第三代软件开发-保存PDF

第三代软件开发-保存PDF 文章目录 第三代软件开发-保存PDF项目介绍保存PDF头文件源文件使用 关键字&#xff1a; Qt、 Qml、 pdf、 painter、 打印 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff…...

2023红帽论坛:构建开放AI生态,助力企业数字革新之路

随着人工智能技术的飞速发展&#xff0c;各行各业正面临着一场前所未有的数字化转型浪潮。尤其是AIGC&#xff08;人工智能生成内容&#xff09;技术自2022年底以来的蓬勃兴起&#xff0c;不仅重塑了用户体验&#xff0c;也为企业运营带来了深刻的变革。 在这样的大背景下&…...

阿里云国际站和华为云国际站之间该如何选择?

阿里云国际站和华为云国际站都是知名的云计算服务提供商&#xff0c;它们各自具有一些独特的优势和劣势。以下是它们之间的一些对比&#xff0c;九河云根据不同的使用场景提供的建议&#xff1a; 阿里云国际站&#xff1a; 优势&#xff1a; 全球覆盖&#xff1a;阿里云国际…...

JavaScript设计模式之责任链模式

适用场景&#xff1a;一个完整的流程&#xff0c;中间分成多个环节&#xff0c;各个环节之间存在一定的顺序关系&#xff0c;同时中间的环节的个数不一定&#xff0c;可能添加环节&#xff0c;也可能减少环节&#xff0c;只要保证顺序关系就可以。 如下图&#xff1a; ES5写法…...

云安全—kubelet攻击面

0x00 前言 虽然说总结的是kubelet的攻击面&#xff0c;但是在总结攻击面之前还是需要去了解kubelet的基本原理&#xff0c;虽然说我们浅尝即止&#xff0c;但是还是要以能给别人讲出来为基本原则。 其他文章: 云安全—K8s APi Server 6443 攻击面云安全—K8S API Server 未授…...

leetcode经典面试150题---5.多数元素

目录 题目描述 前置知识 代码 方法一 排序法 思路 实现 复杂度 方法二 哈希表 思路 实现 题目描述 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给…...

Vue ElementUI el-tooltip 全局样式修改

el-tooltip 要点 此处是全局配置&#xff1b;如果想设置指定的 tooltip 可设置属性 popper-class&#xff0c;为 tooltip 的 popper 添加类名&#xff1b;代码 6 - 8 行&#xff0c;隐藏小三角&#xff1b; .el-tooltip__popper {border-radius: 4px !important;color: #9E9…...

MATLAB_5MW风电永磁直驱发电机-1200V直流并网MATLAB仿真模型

仿真软件&#xff1a;matlab2016b 风机传动模块、PMSG模块、蓄电池模块、超级电容模块、无穷大电源、蓄电池控制、风机控制、逆变器控制等模块。 逆变器输出电压&#xff1a; 混合储能系统SOC&#xff1a; 威♥关注“电击小子程高兴的MATLAB小屋”获取更多精彩资料&#xff0…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...