gpt4 book ai didi

c# - 使用 StreamReader.ReadLine 读取具有特定 NewLine 字符序列的行

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

有时我们需要从流中读取行,但只考虑特定的字符序列作为换行符(CRLF,而不是 CR 或 LF)。

StreamReader.ReadLine,如文档所述,将 CRLF、CR 和 LF 视为换行序列。如果该行可以包含单个 CR(“\r”)或单个 LF(“\n”)作为业务值(value)数据,这可能是 Not Acceptable 。

需要有逐行读取流的能力,但以一定的字符序列分隔。

最佳答案

这是一个从流中读取行并将其作为字符串返回的方法:

    public static string ReadLineWithFixedNewlineDelimeter(StreamReader reader, string delim)
{
if (reader.EndOfStream)
return null;
if (string.IsNullOrEmpty(delim))
{
return reader.ReadToEnd();
}
var sb = new StringBuilder();
var delimCandidatePosition = 0;
while (!reader.EndOfStream && delimCandidatePosition < delim.Length)
{
var c = (char)reader.Read();
if (c == delim[delimCandidatePosition])
{
delimCandidatePosition ++;
}
else
{
delimCandidatePosition = 0;
}
sb.Append(c);
}
return sb.ToString(0, sb.Length - (delimCandidatePosition == delim.Length ? delim.Length : 0));
}

关于c# - 使用 StreamReader.ReadLine 读取具有特定 NewLine 字符序列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845388/

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