2008-12-19 23 views

回答

2

取决于您的要求。如果它需要人类可读的话,那么YAML,XML和CVS都很好。

但是,如果您需要性能或存储二进制值(比如8个字节的double),那么我个人使用Java的优秀DataOutputStream和DataInputStream创建自己的文件格式。但创建自己的格式时要小心。您通常不想与世界分享,否则您需要关心安全性和可扩展性。您将始终关心数据完整性,并可能添加一些crc校验和。

它很难得到自定义二进制文件正确,所以确保你真的需要一个,并寻求帮助!

2

YAML。 From the site

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

的文件都为“混乱的”,并不意味着它的编码。它只意味着它以某种二进制格式保存,而不是文本格式。
当您以二进制格式保存时,只需将数据按原样写入程序存储器即可。为instace编写一个整数,你直接写入整数的4个字节,而不是将其转换为文本。这具有节省空间的优点。
如果你用记事本打开这样的文件,你将会看到的是随机字符。

+0

但是还是要有某种结构,这就是我所说的混乱(对我来说)。谢谢。 – Blankman 2008-12-19 19:51:38

+0

不是真的 - 它可能只是一个字符串或一个很长的整数或*任何* – annakata 2008-12-19 19:53:55

0

出于完整性,我会提到陈旧的.ini format,但我无法想象不会用XML或YAML编写平面文件数据。

相关问题