我被使用sql server存储数据或使用xml文件所破坏。
将数据存储在xml和CSV以外的平面文件中的常用技巧是什么。
我知道很多次打开文件时数据都混乱了,这意味着它编码正确吗?
我在某处可以阅读哪些常用技巧?
答案 0 :(得分:2)
YAML是适用于所有编程语言的人性化数据序列化标准。
示例(再次,from the site):
以下是发票示例 通过YAML(tm)表达。结构是 通过缩进显示(一个或多个 空格)。序列项表示为 一个短划线和一个键值对 地图用冒号分隔。
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
答案 1 :(得分:2)
取决于您的要求。如果它需要人类可读,那么YAML,XML和CVS都很好。
但是如果您需要性能或存储二进制值(比如8字节双倍),那么我个人使用Java优秀的DataOutputStream和DataInputStream创建自己的文件格式。但是在创建自己的格式时要小心。您通常不希望与世界分享它,否则您将需要关心安全性和可扩展性。您将始终关注数据完整性,并可能添加一些crc校验和。
难以获得正确的自定义二进制平面文件,因此请确保您确实需要一个并请求帮助!
答案 2 :(得分:1)
所有“混乱”的文件并不意味着它被编码。它只表示它以某种二进制格式而不是文本格式保存 当您以二进制格式保存时,只需将数据写入程序存储器中即可。对于instace,要写一个整数,你直接写入整数的4个字节而不是将其转换为文本。这具有节省空间的优点 如果你用记事本打开这样一个文件,你将看到的是随机字符。
答案 3 :(得分:0)
出于完整性,我会提到古老的.ini format,但我无法想象不能用XML或YAML编写平面文件数据。