gpt4 book ai didi

C# - 逐字符读取外部 CSV 文件

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:35 25 4
gpt4 key购买 nike

在 C# 中逐字符读取文件的最简单方法是什么?

目前,我正在通过调用 System.io.file.ReadLine() 逐行阅读。我看到有一个 Read() 函数,但它不返回字符...

我还想知道如何使用这种方法检测行尾...有问题的输入文件是 CSV 文件....

最佳答案

打开一个 TextReader(例如通过 File.OpenText - 注意 File 是一个静态类,所以你不能创建它的一个实例)并重复调用 Read .它返回 int 而不是 char 因此它可以指示文件结尾:

int readResult = reader.Read();
if (readResult != -1)
{
char nextChar = (char) readResult;
// ...
}

或者循环:

int readResult;
while ((readResult = reader.Read()) != -1)
{
char nextChar = (char) readResult;
// ...
}

或者为了更时髦的好处:

public static IEnumerable<char> ReadCharacters(string filename)
{
using (var reader = File.OpenText(filename))
{
int readResult;
while ((readResult = reader.Read()) != -1)
{
yield return (char) readResult;
}
}
}

...

foreach (char c in ReadCharacters("foo.txt"))
{
...
}

请注意,默认情况下,File.OpenText 将使用 UTF-8 编码。如果这不是您想要的,请明确指定编码。

编辑:要找到一行的结尾,您需要检查字符是否为 \n...您可能希望专门处理 \r如果这是一个 Windows 文本文件,也是如此。

但如果您想要每一行,为什么不直接调用ReadLine?之后您始终可以遍历行中的字符...

关于C# - 逐字符读取外部 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com