.txt逐行读取所有字节

本文关键字:字节 读取 逐行 txt | 更新日期: 2023-09-27 18:32:38

>我只需要在一行上读取所有字节并将它们放入数组中,然后移动到下一行,依此类推。

例如:

.txt文件

word
apple
zzz

现在在我的程序中,我必须在第一行读取一堆字节,我的数组将由 4 个元素组成。我会做我的处理,然后继续下一行,依此类推。

我看过很多地方,但没有运气。理想情况下,我需要类似ReadAllBytes()的东西,除了不是读取整个文件,而是需要它只读取一行。

编辑:由于我要提高速度,我不能做ReadAllLines((或任何需要我先读取字符串然后将其转换为字节数组的事情。

编辑2:我现在必须回溯一点,因为我知道我不擅长解释任何事情,但我尝试。理想情况下,这就是我希望代码的工作方式

loop through all lines of txt file
    loop through all bytes on that line
        read the byte and process it
        if I need to, I break the loop and move on to the next line

这只是为了更好地理解我的困境。

即使问题仍未解决,我仍然要感谢所有真正试图帮助我的人:谢谢你的尝试

.txt逐行读取所有字节

假设您的文本文件是 ASCII:

var lines = File.ReadLines(@"c:'temp'foo.txt");
foreach (var line in lines)
{
    byte[] bytes = Encoding.ASCII.GetBytes(line);
    // do some processing with byte array
}

根据评论更新ReadLines()

您可以使用StreamReader.ReadLine从特定文件中读取一行,然后将字符串转换为字节数组,最后完成您的工作。

using (var reader = File.OpenText(path))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                foreach (var item in Encoding.UTF8.GetBytes(line))
                {
                    //do your work here 
                    //break the foreach loop if the condition is not satisfied
                }
            }
        }