Delphi使用流打开文件

艾玛·罗西格诺利(Emma Rossignoli)

几天前,我问了这个问题,有人告诉我使用TFileStream我正在阅读Głowacki的Expert Delphi,他使用TStreamReader / TStreamWriter。在评论中,我已阅读以下内容:

TStreamReader是用于读取文本数据的帮助程序类。您的文件不是文本,而是二进制。直接使用TFileStream代替

我对此有点麻烦。我知道二进制文件不包含文本,并且TFileStream可以读取二进制文件(如文档所述)。假设我要用来TStreamWriter在文件上输出一系列数字,然后读取该文件的内容。我可以用TFileStream来做吗?

我看到TStreamWriterTEncoding在构造函数中有,因此我需要指定utf-8或ansi。这会影响文件的结构吗?

我对此并不陌生,我不太了解我在网上找到的专家主题。据我了解,TFileStream用于二进制文件,TStreamReader用于内部包含一些文本的文件

鲁迪·维特胡斯(Rudy Velthuis)

不想混淆您,但实际上所有文件都是二进制文件。

它们包含许多字节,并且人类或软件如何解释这些字节使它们变得有用。

但是,如果术语“文本”和“二进制”相反,则文本(或多或少)表示任何人类可读的内容,例如此答案,而二进制则表示不是文本的任何内容。

一个例子:在当前的Delphi版本中,一个整数由四个字节组成。如果将这些字节直接存储到文件中,则表示正在编写二进制文件。如果您以字符形式编写文本形式(例如-172423423),则您正在编写文本。

TextWriter到流写入文本。TBinaryWriter,因为它是存储在存储器中写入数据。两者都可以使用任何一种流,无论是TFileStreamTMemoryStream写(或读)。流代表文件或其他可写介质。

如今,文本可以具有许多编码,例如UTF-8,多个Ansi代码页等。这意味着不在此范围内的“字符”#0..#127的编码方式是不同的。当然,这可以更改文件的确切内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Delphi-使用流将记录保存到文件

您如何打开文件流以使用Scrapy进行阅读?

Delphi流面板到文件

PHP无法打开流:打开的文件太多

在Delphi 10.3中使用预览打开文件打开对话框

使用带有Delphi的BASS dll创建flac文件或flac流

像流编辑器一样使用sed来使用打开的系统调用打开文件

从文件打开张量流图

如何通过Spark打开/流.zip文件?

打开流的多个文本文件

在文件流中打开简单函数C ++

如何使用ov_open_callbacks从流中打开Ogg Vorbis文件

Delphi Android 文件打开失败,API 26

使用流文件内容

使用Firemonkey / Delphi打开Android 26的PDF文件时获取异常

执行我的Java apache poi程序后无法打开excel文件,并且我正在使用文件输出流

如何使用内存流而不是文件流

使用laravel安装无法打开流

使用PowerShell打开文件

使用JFileChooser打开文件

使用navigationToURL打开文件

xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝

无法以追加模式打开流或文件“...\storage\logs/laravel.log”:无法打开流:权限被拒绝

为什么使用x模式进行fopen会使我“无法打开流:没有此类文件或目录”

Laravel pdf问题:无法打开流:使用barryvdh / laravel-dompdf软件包没有此类文件或目录

无法打开流:没有这样的文件或目录

无法打开流:没有这样的文件或目录 Codeignter

无法打开流:没有这样的文件或目录(Laravel)

如何停止错误消息,如果 JSON 文件无法打开流