以字节为单位存储字符串的最有效方法?

时间:2017-01-17 22:50:14

标签: string byte

假设我有一个类似字节码的简单文件格式来保存数据 如果我想存储一个字符串,我应该像在源文件中那样,其中某个字节之间的所有字符都是字符串,
或者我应该首先存储字符串的长度,然后是字符串字节?

或者两种解决方案都很糟糕,如果可以,我可以使用哪种解决方案?

1 个答案:

答案 0 :(得分:0)

这取决于您是否要存储:

  • 单个字符串
  • 一些字符串
    • 不同长度的字符串
    • 所有相同的长度

对于上述所有内容,如果您的字符串包含:

,则可能也很重要
  • 任何字符
  • 仅限某些字符
  • 格式化

通常,您应该使用Unicode。 对于单个字符串,您只需使用整个文件来包含字符串,文件结尾将与字符串结尾相同。无需存储字符串的长度。

如果字符串不是全部(大约)相同的长度,您可以使用内联分隔符来分隔字符串。换行符通常对此很有用(特别是因为很多编程语言都支持这种逐行读取文件的方式),但其他标记(如tab)很常见。

CSV文本文件通常使用双引号括起包含逗号(或其他列分隔符)的字符串(否则将指示下一列值开始)或换行符(否则将指示下一行)。<登记/> 当然,现在您遇到了如何在字符串中存储双引号的问题。

如果您想存储格式,可以使用标记语言(html),或者它可能足以允许换行和/或某些降价。