几天前,我问了这个问题,有人告诉我使用TFileStream
。我正在阅读Głowacki的Expert Delphi,他使用TStreamReader / TStreamWriter。在评论中,我已阅读以下内容:
TStreamReader是用于读取文本数据的帮助程序类。您的文件不是文本,而是二进制。直接使用TFileStream代替
我对此有点麻烦。我知道二进制文件不包含文本,并且TFileStream
可以读取二进制文件(如文档所述)。假设我要用来TStreamWriter
在文件上输出一系列数字,然后读取该文件的内容。我可以用TFileStream来做吗?
我看到TStreamWriterTEncoding
在构造函数中有,因此我需要指定utf-8或ansi。这会影响文件的结构吗?
我对此并不陌生,我不太了解我在网上找到的专家主题。据我了解,TFileStream用于二进制文件,TStreamReader用于内部包含一些文本的文件
不想混淆您,但实际上所有文件都是二进制文件。
它们包含许多字节,并且人类或软件如何解释这些字节使它们变得有用。
但是,如果术语“文本”和“二进制”相反,则文本(或多或少)表示任何人类可读的内容,例如此答案,而二进制则表示不是文本的任何内容。
一个例子:在当前的Delphi版本中,一个整数由四个字节组成。如果将这些字节直接存储到文件中,则表示正在编写二进制文件。如果您以字符形式编写文本形式(例如-172423423
),则您正在编写文本。
一TextWriter
到流写入文本。的TBinaryWriter
,因为它是存储在存储器中写入数据。两者都可以使用任何一种流,无论是TFileStream
或TMemoryStream
写(或读)。流代表文件或其他可写介质。
如今,文本可以具有许多编码,例如UTF-8,多个Ansi代码页等。这意味着不在此范围内的“字符”#0..#127
的编码方式是不同的。当然,这可以更改文件的确切内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句