我正在根据分隔符处理需要拆分的文件。
以下代码显示为我正在处理的文件定义的分隔符
private static final String component = Character.toString((char) 31);
private static final String data = Character.toString((char) 29);
private static final String segment = Character.toString((char) 28);
有人可以解释一下这些特定分隔符的意义吗?
查看ASCII码,这些分隔符是文件,组和单位分隔符。我真的不明白这意味着什么。
答案 0 :(得分:23)
Found this here. Cool website!
28 - FS - 文件分隔符文件 分隔符FS是一个有趣的控件 代码,因为它给了我们洞察力 计算机技术的方式 六十年代组织起来。我们现在 用于随机访问媒体,如RAM 和磁盘,但当ASCII 标准被定义,大多数数据是 连载。我不只是在谈论 串口通讯,也是关于 串行存储,如打卡,纸张 胶带和磁带。在这样的 这种情况显然是有效的 有一个控制代码来发信号 分离两个文件。 FS 是为此目的而定义的。
29 - GS - 组分隔符 数据存储是一个 一些控制的主要原因 用于获取ASCII定义的代码。 数据库大部分时间都是设置的 包含表,包含记录。所有 一个表中的记录具有相同的记录 类型,但记录不同的表 可以是不同的。组分隔符 GS被定义为将表中的表分开 串行数据存储系统。注意 那个词表没用过 时刻和ASCII人称之为 一组。
30 - RS - 记录分隔符 在一个组(或表)内的记录 用RS或记录分开 分隔器。
31 - 美国 - 单位分隔符 要存储的最小数据项 在数据库中称为单位 ASCII定义。我们会打电话给他们 现在。单位分隔符 将这些字段分隔成一个序列 数据存储环境。最新的 数据库实现需要 大多数类型的字段都有固定的 长度。记录中有足够的空间 分配给存储最大的 每个领域的可能成员,即使 在大多数情况下,这不是必需的。 这需要花费大量的空间 很多情况。美国控制代码 允许所有字段都有一个变量 长度。如果数据存储空间是 限制 - 如六十年代 - 这是一个 保护宝贵空间的好方法。 另一方面是串行存储 效率远低于表格 驱动RAM和磁盘实现 现代。我无法想象 现代SQL数据库的情况 使用存储在纸上的数据运行 磁带或磁性卷轴......
答案 1 :(得分:10)
阅读ASCII Delimiter section of this tutorial以了解这些内容。然后阅读this article,专门讨论使用28,29和31分隔文本的ASCII方式。
答案 2 :(得分:2)
ascii控制字符的范围是28-31。 (0x1C到0x1F)
31 Unit Separator
30 Record Separator
29 Group Separator
28 File Separator
示例调用:
char record_separator = 0x1F;
String s = "hello" + record_separator + "world"
答案 3 :(得分:1)
这些字符是控制字符。它们不是由人类编写或阅读,而是由计算机编写或阅读。你应该像在任何其他角色一样在你的程序中对待它们。