gpt4 book ai didi

c# - 如何在逐字节读取 CSV 文件时检测字节是否为换行符 - C#

转载 作者:行者123 更新时间:2023-11-30 14:48:58 26 4
gpt4 key购买 nike

我需要逐字节读取 CSV 文件(注意:我不想逐行读取)。如何检测读取的字节是否为换行符?如何知道已到达行尾?

int count = 0;
byte[] buffer = new byte[MAX_BUFFER];

using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
// Read bytes form file until the next line break -or- eof
// so we don't break a csv row in the middle

// What should be instead of the 'xxx' ?

while (((readByte = fs.ReadByte()) != 'xxx') && (readByte != -1))
{
buffer[count] = Convert.ToByte(readByte);
count++;
}
}

最佳答案

换行符有十进制值 10 或十六进制值 0xA。为了检查换行符,将结果与 0xA

进行比较
int count = 0;
byte[] buffer = new byte[MAX_BUFFER];

using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
// Read bytes form file until the next line break -or- eof
// so we don't break a csv row in the middle

// What should be instead of the 'xxx' ?

while (((readByte = fs.ReadByte()) != 0xA) && (readByte != -1))
{
buffer[count] = Convert.ToByte(readByte);
count++;
}
}

readByte 等于 10 或十六进制的 0xA 时,条件将为假。看看 ASCII Table获取更多信息。

更新

您可能还想定义一个常量,如 const int NEW_LINE = 0xA 并在 while 语句中使用它而不是仅仅使用 0xA。这只是为了帮助您稍后弄清楚 0xA 的实际含义。

关于c# - 如何在逐字节读取 CSV 文件时检测字节是否为换行符 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678838/

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