c# - 一次读取一个字符的文本文件时检测换行

标签 c#

目标文件:

Hello
World


码:

if (file != null)
{
    //Read file one character at a time
    StreamReader reader;
    reader = new StreamReader(file);
    do
    {
        int s = reader.Read();
        char sC = (char)s;
        if (sC.Equals(Environment.NewLine))
        {
            Console.WriteLine("+1");
        }
        Console.WriteLine((char)s);
    } while (!reader.EndOfStream);
    reader.Close();
    reader.Dispose();
}


输出:

H
e
l
l
o




W
o
r
l
d


所以(sC.Equals(Environment.NewLine))一次读取一个char时显然不会检测到与平台无关的换行符。我该怎么做?

最佳答案

试试这个

if (sC.Equals('\n'))


如果您确定在\r之后总会有一个\n,则可以通过另一个reader.Read();调用将其吞下。例:

if (sC.Equals('\n')) {
   reader.Read()
   Console.WriteLine("+1");
}

关于c# - 一次读取一个字符的文本文件时检测换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10785960/

相关文章:

c# - 当通过网络接收的数据更改属性时,如何将控件绑定(bind)到属性更改?

javascript - onchange 函数在初始文本框中工作,但在另一个文本框中不起作用

c# - Swashbuckle SchemaFilter 用于 api 操作参数

c# - 如何将程序集对象序列化/反序列化为字节数组

c# - WMI Win32_NetworkAdapterConfiguration 和 SetDNSSuffixSearchOrder 方法

c# 多个 web.config 文件在不同文件夹下的单个项目中?

c# - 使用Xamarin表单选择产品时如何显示产品详细信息

c# - 确定 Azure Web 角色的实例 IP 地址

c# - 如何获取作为函数传递的匿名方法的参数值?

c# - 表中的 session 过多导致无法生成新 session