C# 哪些文件类型可以使用System.IO.file.ReadAllLines()

C# 哪些文件类型可以使用System.IO.file.ReadAllLines(),c#,.net,system.io.file,C#,.net,System.io.file,我正在创建一个程序,可以将不同的文件类型转换为pdf格式 创建.txt到.pdf转换器后,该转换器使用System.IO.File.ReadAllLines() 我意识到我可以将相同的转换器用于.csv,这让我想知道,由于ReadAllLines方法,理论上我还可以支持哪些其他文件类型。由于ReadAllLines()将行作为文本读取,因此可以将其用于任何基于文本的文件类型。在这一类别中没有全面的“类型”文件列表(新的文件类型一直被发明),但其中大多数可能是用作代码(.cs,.java,等等)或

我正在创建一个程序,可以将不同的文件类型转换为pdf格式

创建
.txt
.pdf
转换器后,该转换器使用
System.IO.File.ReadAllLines()

我意识到我可以将相同的转换器用于
.csv
,这让我想知道,由于
ReadAllLines
方法,理论上我还可以支持哪些其他文件类型。

由于
ReadAllLines()
将行作为文本读取,因此可以将其用于任何基于文本的文件类型。在这一类别中没有全面的“类型”文件列表(新的文件类型一直被发明),但其中大多数可能是用作代码(
.cs
.java
,等等)或用于在应用程序之间传输数据的结构化数据的文件(
.xml
.json
等)

从理论上讲,您可以为其他(二进制)文件调用该方法,但最终会得到一堆无用的GobbleDeBook。

说简单地尝试将文件作为文本读取可能会令人困惑,因为另一个问题可能会问到我们所说的“作为文本读取”是什么意思.此外,它还尝试检测编码…因此,让我们避免以这种方式回答

对于“支持哪些类型”的问题,简短的回答很简单:
任何类型

原因:
无论文件是文本文件还是二进制文件。此方法只需读取字节,直到找到换行符或回车符('\r','\n','\r\n')。 一旦找到任何内容,它就会假设之前的所有内容都是一行,然后通过寻找下一个换行符继续读取文件

因此,如果csv-s在您这边起作用,原因是相同的。该csv文件内部有换行符。此外,即使有二进制文件,该函数也将返回结果(尽管它可能非常无用)只是因为它在其中发现了一些换行符或回车字符。如果没有-则它将作为字符串的单个项数组返回整个二进制数据

是否从文档中获取了更多细节,以备需要:

此方法打开一个文件,读取文件的每一行,然后添加每一行 行作为字符串数组的元素。然后关闭文件。行 定义为后跟回车符的字符序列 ('\r')、换行符('\n')或紧跟其后的回车符 通过换行。结果字符串不包含终止字符 回车和/或换行

此方法尝试自动检测文件的编码 基于字节顺序标记的存在。编码格式UTF-8和 可以检测到UTF-32(大端和小端)


您可以使用任何东西,即文本(这是许多文件),例如:xml、html、JavaScript、css、rtf等代码文件。注意:如果内部没有换行符(这是非常常见的情况),Json和其他文本文件类型可能无法按预期工作。在这种情况下,您将以单行形式获得整个文本/文件,这通常不是您想要的。有关详细信息,请参阅此答案: