代码之家  ›  专栏  ›  技术社区  ›  Shane

是否可以创建没有EOF标记的文件?

  •  2
  • Shane  · 技术社区  · 14 年前

    我们有一个应用程序,它读取一个平面文件并解析数据。此文件不包含用于进行校验和的头信息或总数据。所以我想创建测试用例来确保我们的应用程序正确处理“不完整”的文件。

    有没有一种方法可以创建一个没有EOF标记的平面文件?也许是一个工具,我可以用来从现有的文本文件中删除EOF标记?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Martin Beckett    14 年前

    平面文件不包含文件结尾标记。

    几乎所有的现代文件系统都是基于流的,只是磁盘上的一些字节,它们没有记录/文件标记。
    读取文件的std库会添加任何文件结束信号。

    您应该测试它是否正确地处理不完整的行(即3个值而不是4个值)和丢失/不同的行尾(CR或LF而不是CR/LF)

        2
  •  1
  •   danben    14 年前

    没有标准的eof字符-eof是从文件中读取的方法返回的条件。例如,在c中, getchar 将在到达文件结尾时返回系统特定的负值。

    终端将发送回ASCII 4( EOT (对于传输结束)当它们完成传输时,但这对您没有多大帮助 电除尘器 在您的文件中。

    所以,这对你来说是个好消息——你所有的文件都将被同样对待,你不必担心无穷无尽地处理文件。