ASCII不可读字符28,29 31

好的,我在这里很厚 我正在处理一个我需要根据分隔符进行拆分的文件。

以下代码显示为我正在处理的文件定义的分隔符

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代码,这些分隔符是文件,组和单元分隔符。 我真的不明白这意味着什么。

谢谢

阅读本教程的ASCII分隔符部分以了解这些内容。 然后阅读本文,专门讨论使用28,29和31分隔文本的ASCII方式。

在这里找到了。 酷网站!

28 – FS – 文件分隔符文件分隔符FS是一个有趣的控制代码,因为它让我们深入了解计算机技术在六十年代的组织方式。 我们现在习惯于随机访问媒体,如RAM和磁盘,但是当定义ASCII标准时,大多数数据都是串行的。 我不仅谈论串行通信,还谈论打孔卡,纸带和磁带等串行存储。 在这种情况下,使用单个控制代码来发信号通知两个文件的分离显然是有效的。 为此目的定义了FS。

29 – GS – 组分隔符数据存储是某些控制代码进入ASCII定义的主要原因之一。 数据库大多数时候都是使用包含记录的表进行设置。 一个表中的所有记录具有相同的类型,但不同表的记录可以不同。 组分隔符GS被定义为分离串行数据存储系统中的表。 请注意,那时没有使用单词表,ASCII人称之为组。

30 – RS – 记录分隔符在组(或表)中,记录用RS或记录分隔符分隔。

31 – US – 单位分隔符要存储在数据库中的最小数据项在ASCII定义中称为单位。 我们现在称他们为田地。 单元分隔符在串行数据存储环境中分隔这些字段。 大多数当前的数据库实现要求大多数类型的字段具有固定长度。 记录中有足够的空间来存储每个字段的最大可能成员,即使在大多数情况下不需要这样做。 在许多情况下,这会花费大量空间。 美国控制代码允许所有字段具有可变长度。 如果数据存储空间有限 – 就像六十年代那样 – 这是保护宝贵空间的好方法。 另一方面,串行存储远远低于现代表驱动RAM和磁盘实现的效率。 我无法想象现代SQL数据库使用存储在纸带或磁性卷轴上的数据运行的情况……

这些字符是控制字符。 它们不是由人类编写或阅读,而是由计算机编写或阅读。 你应该像在任何其他角色一样对待它们。

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"